//
// Copyright (C) 2009 Eugeny Grishul
//
// See license in License.txt
//

namespace NObjective.Proxies {
	using System;
	using System.Runtime.InteropServices;
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAAnimation : IEquatable<CAAnimation> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAAnimation;
		public static implicit operator NSObject( CAAnimation value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAAnimation value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAAnimation value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAAnimation?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAAnimation value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAAnimation value1, CAAnimation value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAAnimation value1, CAAnimation value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAAnimation( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAAnimation alloc() {
			return new CAAnimation( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject animation() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.animation( ClassHandle, CachedSelectors.animation, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static char automaticallyNotifiesObserversForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.automaticallyNotifiesObserversForKey_( ClassHandle, CachedSelectors.automaticallyNotifiesObserversForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static char CAML_supportedClass() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.CAML_supportedClass( ClassHandle, CachedSelectors.CAML_supportedClass, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static NObjective.RuntimeObject defaultValueForKey_( string key ) {
			RuntimeObject ___occuredException;
			var ___wrappedkey = Runtime.CreateStringProxy( key );
			var ___result = NativeMethods.defaultValueForKey_( ClassHandle, CachedSelectors.defaultValueForKey_, out ___occuredException, sizeof( IntPtr ), ___wrappedkey );
			Runtime.ReleaseNativeObject( ___wrappedkey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject properties() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.properties( ClassHandle, CachedSelectors.properties, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void applyForTime_presentationObject_modelObject_( double time, NObjective.RuntimeObject presentationObject, NObjective.RuntimeObject modelObject ) {
			RuntimeObject ___occuredException;
			NativeMethods.applyForTime_presentationObject_modelObject_( Handle, CachedSelectors.applyForTime_presentationObject_modelObject_, out ___occuredException, sizeof( double ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), time, presentationObject, modelObject );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject attributesForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.attributesForKey_( Handle, CachedSelectors.attributesForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject attributesForKeyPath_( NObjective.RuntimeObject path ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.attributesForKeyPath_( Handle, CachedSelectors.attributesForKeyPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ), path );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public char autoreverses() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.autoreverses( Handle, CachedSelectors.autoreverses, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public double beginTime() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.beginTime( Handle, CachedSelectors.beginTime, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject @delegate() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.@delegate( Handle, CachedSelectors.@delegate, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public double duration() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.duration( Handle, CachedSelectors.duration, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void encodeWithCoder_( NSCoder coder ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeWithCoder_( Handle, CachedSelectors.encodeWithCoder_, out ___occuredException, sizeof( NSCoder ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject fillMode() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.fillMode( Handle, CachedSelectors.fillMode, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public double frameInterval() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.frameInterval( Handle, CachedSelectors.frameInterval, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject initWithCoder_( NObjective.RuntimeObject coder ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCoder_( Handle, CachedSelectors.initWithCoder_, out ___occuredException, sizeof( NObjective.RuntimeObject ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public bool isRemovedOnCompletion() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isRemovedOnCompletion( Handle, CachedSelectors.isRemovedOnCompletion, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public char removedOnCompletion() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.removedOnCompletion( Handle, CachedSelectors.removedOnCompletion, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float repeatCount() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.repeatCount( Handle, CachedSelectors.repeatCount, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public double repeatDuration() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.repeatDuration( Handle, CachedSelectors.repeatDuration, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void runActionForKey_object_arguments_( NObjective.RuntimeObject key, NObjective.RuntimeObject @object, NObjective.RuntimeObject arguments ) {
			RuntimeObject ___occuredException;
			NativeMethods.runActionForKey_object_arguments_( Handle, CachedSelectors.runActionForKey_object_arguments_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), key, @object, arguments );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setDefaultDuration_( double duration ) {
			RuntimeObject ___occuredException;
			NativeMethods.setDefaultDuration_( Handle, CachedSelectors.setDefaultDuration_, out ___occuredException, sizeof( double ), duration );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setValue_forKey_( NObjective.RuntimeObject value, NObjective.RuntimeObject forKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forKey_( Handle, CachedSelectors.setValue_forKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setValue_forKeyPath_( NObjective.RuntimeObject value, NObjective.RuntimeObject forKeyPath ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forKeyPath_( Handle, CachedSelectors.setValue_forKeyPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forKeyPath );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setValue_forUndefinedKey_( NObjective.RuntimeObject value, NObjective.RuntimeObject forUndefinedKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forUndefinedKey_( Handle, CachedSelectors.setValue_forUndefinedKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forUndefinedKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public bool shouldArchiveValueForKey_( string key ) {
			RuntimeObject ___occuredException;
			var ___wrappedkey = Runtime.CreateStringProxy( key );
			var ___result = NativeMethods.shouldArchiveValueForKey_( Handle, CachedSelectors.shouldArchiveValueForKey_, out ___occuredException, sizeof( IntPtr ), ___wrappedkey );
			Runtime.ReleaseNativeObject( ___wrappedkey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float speed() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.speed( Handle, CachedSelectors.speed, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public double timeOffset() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.timeOffset( Handle, CachedSelectors.timeOffset, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject timingFunction() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.timingFunction( Handle, CachedSelectors.timingFunction, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject valueForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForKey_( Handle, CachedSelectors.valueForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject valueForKeyPath_( NObjective.RuntimeObject path ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForKeyPath_( Handle, CachedSelectors.valueForKeyPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ), path );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject valueForUndefinedKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForUndefinedKey_( Handle, CachedSelectors.valueForUndefinedKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		public struct ObjectiveCPropertyImplementation {
			public char autoreverses {
				get { return _handle.autoreverses(); }
			}
			public double beginTime {
				get { return _handle.beginTime(); }
			}
			public NObjective.RuntimeObject @delegate {
				get { return _handle.@delegate(); }
			}
			public double duration {
				get { return _handle.duration(); }
			}
			public NObjective.RuntimeObject fillMode {
				get { return _handle.fillMode(); }
			}
			public double frameInterval {
				get { return _handle.frameInterval(); }
			}
			public bool removedOnCompletion {
				get { return _handle.isRemovedOnCompletion(); }
			}
			public float repeatCount {
				get { return _handle.repeatCount(); }
			}
			public double repeatDuration {
				get { return _handle.repeatDuration(); }
			}
			public float speed {
				get { return _handle.speed(); }
			}
			public double timeOffset {
				get { return _handle.timeOffset(); }
			}
			public NObjective.RuntimeObject timingFunction {
				get { return _handle.timingFunction(); }
			}
			private readonly CAAnimation _handle;
			public ObjectiveCPropertyImplementation( CAAnimation value ) {
				_handle = value;
			}
		}
		public ObjectiveCPropertyImplementation Properties {
			get { return new ObjectiveCPropertyImplementation( this ); }
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr animation( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void applyForTime_presentationObject_modelObject_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, double time, NObjective.RuntimeObject presentationObject, NObjective.RuntimeObject modelObject );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr attributesForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr attributesForKeyPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject path );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char automaticallyNotifiesObserversForKey_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char autoreverses( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern double beginTime( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char CAML_supportedClass( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr defaultValueForKey_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr @delegate( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern double duration( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSCoder coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr fillMode( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern double frameInterval( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isRemovedOnCompletion( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr properties( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char removedOnCompletion( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float repeatCount( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern double repeatDuration( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void runActionForKey_object_arguments_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key, NObjective.RuntimeObject @object, NObjective.RuntimeObject arguments );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setDefaultDuration_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, double duration );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forKeyPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forKeyPath );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forUndefinedKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forUndefinedKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool shouldArchiveValueForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float speed( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern double timeOffset( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr timingFunction( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForKeyPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject path );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForUndefinedKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
		}
		static internal class CachedSelectors {
			public static readonly Selector animation = "animation";
			public static readonly Selector applyForTime_presentationObject_modelObject_ = "applyForTime:presentationObject:modelObject:";
			public static readonly Selector attributesForKey_ = "attributesForKey:";
			public static readonly Selector attributesForKeyPath_ = "attributesForKeyPath:";
			public static readonly Selector automaticallyNotifiesObserversForKey_ = "automaticallyNotifiesObserversForKey:";
			public static readonly Selector autoreverses = "autoreverses";
			public static readonly Selector beginTime = "beginTime";
			public static readonly Selector CAML_supportedClass = "CAML_supportedClass";
			public static readonly Selector defaultValueForKey_ = "defaultValueForKey:";
			public static readonly Selector @delegate = "delegate";
			public static readonly Selector duration = "duration";
			public static readonly Selector encodeWithCoder_ = "encodeWithCoder:";
			public static readonly Selector fillMode = "fillMode";
			public static readonly Selector frameInterval = "frameInterval";
			public static readonly Selector initWithCoder_ = "initWithCoder:";
			public static readonly Selector isRemovedOnCompletion = "isRemovedOnCompletion";
			public static readonly Selector properties = "properties";
			public static readonly Selector removedOnCompletion = "removedOnCompletion";
			public static readonly Selector repeatCount = "repeatCount";
			public static readonly Selector repeatDuration = "repeatDuration";
			public static readonly Selector runActionForKey_object_arguments_ = "runActionForKey:object:arguments:";
			public static readonly Selector setDefaultDuration_ = "setDefaultDuration:";
			public static readonly Selector setValue_forKey_ = "setValue:forKey:";
			public static readonly Selector setValue_forKeyPath_ = "setValue:forKeyPath:";
			public static readonly Selector setValue_forUndefinedKey_ = "setValue:forUndefinedKey:";
			public static readonly Selector shouldArchiveValueForKey_ = "shouldArchiveValueForKey:";
			public static readonly Selector speed = "speed";
			public static readonly Selector timeOffset = "timeOffset";
			public static readonly Selector timingFunction = "timingFunction";
			public static readonly Selector valueForKey_ = "valueForKey:";
			public static readonly Selector valueForKeyPath_ = "valueForKeyPath:";
			public static readonly Selector valueForUndefinedKey_ = "valueForUndefinedKey:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CAAnimation ) )]
	public struct CAAnimationGroup : IEquatable<CAAnimationGroup> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAAnimationGroup;
		public static implicit operator CAAnimation( CAAnimationGroup value ) {
			return new CAAnimation( value.Handle );
		}
		public static implicit operator NSObject( CAAnimationGroup value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAAnimationGroup value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAAnimationGroup value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAAnimationGroup?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAAnimationGroup value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAAnimationGroup value1, CAAnimationGroup value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAAnimationGroup value1, CAAnimationGroup value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAAnimationGroup( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAAnimationGroup alloc() {
			return new CAAnimationGroup( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject animations() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.animations( Handle, CachedSelectors.animations, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		public struct ObjectiveCPropertyImplementation {
			public NObjective.RuntimeObject animations {
				get { return _handle.animations(); }
			}
			private readonly CAAnimationGroup _handle;
			public ObjectiveCPropertyImplementation( CAAnimationGroup value ) {
				_handle = value;
			}
		}
		public ObjectiveCPropertyImplementation Properties {
			get { return new ObjectiveCPropertyImplementation( this ); }
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr animations( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector animations = "animations";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CAPropertyAnimation ) )]
	public struct CABasicAnimation : IEquatable<CABasicAnimation> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CABasicAnimation;
		public static implicit operator CAPropertyAnimation( CABasicAnimation value ) {
			return new CAPropertyAnimation( value.Handle );
		}
		public static implicit operator CAAnimation( CABasicAnimation value ) {
			return new CAAnimation( value.Handle );
		}
		public static implicit operator NSObject( CABasicAnimation value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CABasicAnimation value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CABasicAnimation value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CABasicAnimation?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CABasicAnimation value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CABasicAnimation value1, CABasicAnimation value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CABasicAnimation value1, CABasicAnimation value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CABasicAnimation( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CABasicAnimation alloc() {
			return new CABasicAnimation( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject byValue() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.byValue( Handle, CachedSelectors.byValue, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public float endAngle() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.endAngle( Handle, CachedSelectors.endAngle, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject fromValue() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.fromValue( Handle, CachedSelectors.fromValue, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public char roundsToInteger() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.roundsToInteger( Handle, CachedSelectors.roundsToInteger, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float startAngle() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.startAngle( Handle, CachedSelectors.startAngle, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject toValue() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.toValue( Handle, CachedSelectors.toValue, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		public struct ObjectiveCPropertyImplementation {
			public NObjective.RuntimeObject byValue {
				get { return _handle.byValue(); }
			}
			public float endAngle {
				get { return _handle.endAngle(); }
			}
			public NObjective.RuntimeObject fromValue {
				get { return _handle.fromValue(); }
			}
			public char roundsToInteger {
				get { return _handle.roundsToInteger(); }
			}
			public float startAngle {
				get { return _handle.startAngle(); }
			}
			public NObjective.RuntimeObject toValue {
				get { return _handle.toValue(); }
			}
			private readonly CABasicAnimation _handle;
			public ObjectiveCPropertyImplementation( CABasicAnimation value ) {
				_handle = value;
			}
		}
		public ObjectiveCPropertyImplementation Properties {
			get { return new ObjectiveCPropertyImplementation( this ); }
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr byValue( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float endAngle( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr fromValue( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char roundsToInteger( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float startAngle( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr toValue( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector byValue = "byValue";
			public static readonly Selector endAngle = "endAngle";
			public static readonly Selector fromValue = "fromValue";
			public static readonly Selector roundsToInteger = "roundsToInteger";
			public static readonly Selector startAngle = "startAngle";
			public static readonly Selector toValue = "toValue";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CABoxLayoutManager : IEquatable<CABoxLayoutManager> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CABoxLayoutManager;
		public static implicit operator NSObject( CABoxLayoutManager value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CABoxLayoutManager value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CABoxLayoutManager value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CABoxLayoutManager?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CABoxLayoutManager value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CABoxLayoutManager value1, CABoxLayoutManager value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CABoxLayoutManager value1, CABoxLayoutManager value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CABoxLayoutManager( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CABoxLayoutManager alloc() {
			return new CABoxLayoutManager( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static char CAML_supportedClass() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.CAML_supportedClass( ClassHandle, CachedSelectors.CAML_supportedClass, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static NObjective.RuntimeObject layoutManager() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.layoutManager( ClassHandle, CachedSelectors.layoutManager, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void layoutSublayersOfLayer_( NObjective.RuntimeObject layer ) {
			RuntimeObject ___occuredException;
			NativeMethods.layoutSublayersOfLayer_( Handle, CachedSelectors.layoutSublayersOfLayer_, out ___occuredException, sizeof( NObjective.RuntimeObject ), layer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char CAML_supportedClass( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr layoutManager( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void layoutSublayersOfLayer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject layer );
		}
		static internal class CachedSelectors {
			public static readonly Selector CAML_supportedClass = "CAML_supportedClass";
			public static readonly Selector layoutManager = "layoutManager";
			public static readonly Selector layoutSublayersOfLayer_ = "layoutSublayersOfLayer:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CACodingProxy : IEquatable<CACodingProxy> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CACodingProxy;
		public static implicit operator NSObject( CACodingProxy value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CACodingProxy value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CACodingProxy value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CACodingProxy?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CACodingProxy value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CACodingProxy value1, CACodingProxy value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CACodingProxy value1, CACodingProxy value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CACodingProxy( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CACodingProxy alloc() {
			return new CACodingProxy( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject decodedObject() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.decodedObject( Handle, CachedSelectors.decodedObject, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void encodeWithCoder_( NSCoder coder ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeWithCoder_( Handle, CachedSelectors.encodeWithCoder_, out ___occuredException, sizeof( NSCoder ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject initWithCoder_( NObjective.RuntimeObject coder ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCoder_( Handle, CachedSelectors.initWithCoder_, out ___occuredException, sizeof( NObjective.RuntimeObject ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithObject_( NObjective.RuntimeObject @object ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithObject_( Handle, CachedSelectors.initWithObject_, out ___occuredException, sizeof( NObjective.RuntimeObject ), @object );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr decodedObject( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSCoder coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithObject_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @object );
		}
		static internal class CachedSelectors {
			public static readonly Selector decodedObject = "decodedObject";
			public static readonly Selector encodeWithCoder_ = "encodeWithCoder:";
			public static readonly Selector initWithCoder_ = "initWithCoder:";
			public static readonly Selector initWithObject_ = "initWithObject:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAConstraint : IEquatable<CAConstraint> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAConstraint;
		public static implicit operator NSObject( CAConstraint value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAConstraint value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAConstraint value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAConstraint?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAConstraint value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAConstraint value1, CAConstraint value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAConstraint value1, CAConstraint value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAConstraint( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAConstraint alloc() {
			return new CAConstraint( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject constraintWithAttribute_relativeTo_attribute_( int attribute, string relativeTo, int attribute2 ) {
			RuntimeObject ___occuredException;
			var ___wrappedrelativeTo = Runtime.CreateStringProxy( relativeTo );
			var ___result = NativeMethods.constraintWithAttribute_relativeTo_attribute_( ClassHandle, CachedSelectors.constraintWithAttribute_relativeTo_attribute_, out ___occuredException, sizeof( int ) + sizeof( IntPtr ) + sizeof( int ), attribute, ___wrappedrelativeTo, attribute2 );
			Runtime.ReleaseNativeObject( ___wrappedrelativeTo );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject constraintWithAttribute_relativeTo_attribute_offset_( int attribute, string relativeTo, int attribute2, float offset ) {
			RuntimeObject ___occuredException;
			var ___wrappedrelativeTo = Runtime.CreateStringProxy( relativeTo );
			var ___result = NativeMethods.constraintWithAttribute_relativeTo_attribute_offset_( ClassHandle, CachedSelectors.constraintWithAttribute_relativeTo_attribute_offset_, out ___occuredException, sizeof( int ) + sizeof( IntPtr ) + sizeof( int ) + sizeof( float ), attribute, ___wrappedrelativeTo, attribute2, offset );
			Runtime.ReleaseNativeObject( ___wrappedrelativeTo );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject constraintWithAttribute_relativeTo_attribute_scale_offset_( int attribute, string relativeTo, int attribute2, float scale, float offset ) {
			RuntimeObject ___occuredException;
			var ___wrappedrelativeTo = Runtime.CreateStringProxy( relativeTo );
			var ___result = NativeMethods.constraintWithAttribute_relativeTo_attribute_scale_offset_( ClassHandle, CachedSelectors.constraintWithAttribute_relativeTo_attribute_scale_offset_, out ___occuredException, sizeof( int ) + sizeof( IntPtr ) + sizeof( int ) + sizeof( float ) + sizeof( float ), attribute, ___wrappedrelativeTo, attribute2, scale, offset );
			Runtime.ReleaseNativeObject( ___wrappedrelativeTo );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void encodeWithCoder_( NSCoder coder ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeWithCoder_( Handle, CachedSelectors.encodeWithCoder_, out ___occuredException, sizeof( NSCoder ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject initWithAttribute_relativeTo_attribute_scale_offset_( int attribute, string relativeTo, int attribute2, float scale, float offset ) {
			RuntimeObject ___occuredException;
			var ___wrappedrelativeTo = Runtime.CreateStringProxy( relativeTo );
			var ___result = NativeMethods.initWithAttribute_relativeTo_attribute_scale_offset_( Handle, CachedSelectors.initWithAttribute_relativeTo_attribute_scale_offset_, out ___occuredException, sizeof( int ) + sizeof( IntPtr ) + sizeof( int ) + sizeof( float ) + sizeof( float ), attribute, ___wrappedrelativeTo, attribute2, scale, offset );
			Runtime.ReleaseNativeObject( ___wrappedrelativeTo );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCoder_( NObjective.RuntimeObject coder ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCoder_( Handle, CachedSelectors.initWithCoder_, out ___occuredException, sizeof( NObjective.RuntimeObject ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr constraintWithAttribute_relativeTo_attribute_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int attribute, IntPtr relativeTo, int attribute2 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr constraintWithAttribute_relativeTo_attribute_offset_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int attribute, IntPtr relativeTo, int attribute2, float offset );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr constraintWithAttribute_relativeTo_attribute_scale_offset_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int attribute, IntPtr relativeTo, int attribute2, float scale, float offset );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSCoder coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithAttribute_relativeTo_attribute_scale_offset_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int attribute, IntPtr relativeTo, int attribute2, float scale, float offset );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject coder );
		}
		static internal class CachedSelectors {
			public static readonly Selector constraintWithAttribute_relativeTo_attribute_ = "constraintWithAttribute:relativeTo:attribute:";
			public static readonly Selector constraintWithAttribute_relativeTo_attribute_offset_ = "constraintWithAttribute:relativeTo:attribute:offset:";
			public static readonly Selector constraintWithAttribute_relativeTo_attribute_scale_offset_ = "constraintWithAttribute:relativeTo:attribute:scale:offset:";
			public static readonly Selector encodeWithCoder_ = "encodeWithCoder:";
			public static readonly Selector initWithAttribute_relativeTo_attribute_scale_offset_ = "initWithAttribute:relativeTo:attribute:scale:offset:";
			public static readonly Selector initWithCoder_ = "initWithCoder:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAConstraintLayoutManager : IEquatable<CAConstraintLayoutManager> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAConstraintLayoutManager;
		public static implicit operator NSObject( CAConstraintLayoutManager value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAConstraintLayoutManager value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAConstraintLayoutManager value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAConstraintLayoutManager?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAConstraintLayoutManager value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAConstraintLayoutManager value1, CAConstraintLayoutManager value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAConstraintLayoutManager value1, CAConstraintLayoutManager value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAConstraintLayoutManager( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAConstraintLayoutManager alloc() {
			return new CAConstraintLayoutManager( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static char CAML_supportedClass() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.CAML_supportedClass( ClassHandle, CachedSelectors.CAML_supportedClass, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static NObjective.RuntimeObject layoutManager() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.layoutManager( ClassHandle, CachedSelectors.layoutManager, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void layoutSublayersOfLayer_( NObjective.RuntimeObject layer ) {
			RuntimeObject ___occuredException;
			NativeMethods.layoutSublayersOfLayer_( Handle, CachedSelectors.layoutSublayersOfLayer_, out ___occuredException, sizeof( NObjective.RuntimeObject ), layer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char CAML_supportedClass( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr layoutManager( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void layoutSublayersOfLayer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject layer );
		}
		static internal class CachedSelectors {
			public static readonly Selector CAML_supportedClass = "CAML_supportedClass";
			public static readonly Selector layoutManager = "layoutManager";
			public static readonly Selector layoutSublayersOfLayer_ = "layoutSublayersOfLayer:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAContext : IEquatable<CAContext> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAContext;
		public static implicit operator NSObject( CAContext value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAContext value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAContext value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAContext?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAContext value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAContext value1, CAContext value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAContext value1, CAContext value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAContext( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAContext alloc() {
			return new CAContext( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject allContexts() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.allContexts( ClassHandle, CachedSelectors.allContexts, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject contextWithCGSConnection_options_( uint connection, NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.contextWithCGSConnection_options_( ClassHandle, CachedSelectors.contextWithCGSConnection_options_, out ___occuredException, sizeof( uint ) + sizeof( NObjective.RuntimeObject ), connection, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject localContext() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.localContext( ClassHandle, CachedSelectors.localContext, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject localContextWithOptions_( NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.localContextWithOptions_( ClassHandle, CachedSelectors.localContextWithOptions_, out ___occuredException, sizeof( NObjective.RuntimeObject ), options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject objectForSlot_( uint slot ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.objectForSlot_( ClassHandle, CachedSelectors.objectForSlot_, out ___occuredException, sizeof( uint ), slot );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject remoteContext() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.remoteContext( ClassHandle, CachedSelectors.remoteContext, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject remoteContextWithOptions_( NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.remoteContextWithOptions_( ClassHandle, CachedSelectors.remoteContextWithOptions_, out ___occuredException, sizeof( NObjective.RuntimeObject ), options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static void setClientPort_( uint port ) {
			RuntimeObject ___occuredException;
			NativeMethods.setClientPort_( ClassHandle, CachedSelectors.setClientPort_, out ___occuredException, sizeof( uint ), port );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public uint contextId() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.contextId( Handle, CachedSelectors.contextId, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ( uint ) ___result;
		}
		unsafe public uint createSlot() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.createSlot( Handle, CachedSelectors.createSlot, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ( uint ) ___result;
		}
		unsafe public void deleteSlot_( uint slot ) {
			RuntimeObject ___occuredException;
			NativeMethods.deleteSlot_( Handle, CachedSelectors.deleteSlot_, out ___occuredException, sizeof( uint ), slot );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void invalidate() {
			RuntimeObject ___occuredException;
			NativeMethods.invalidate( Handle, CachedSelectors.invalidate, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject layer() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.layer( Handle, CachedSelectors.layer, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void setLayer_( NObjective.RuntimeObject layer ) {
			RuntimeObject ___occuredException;
			NativeMethods.setLayer_( Handle, CachedSelectors.setLayer_, out ___occuredException, sizeof( NObjective.RuntimeObject ), layer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setObject_forSlot_( NObjective.RuntimeObject @object, uint forSlot ) {
			RuntimeObject ___occuredException;
			NativeMethods.setObject_forSlot_( Handle, CachedSelectors.setObject_forSlot_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ), @object, forSlot );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public char valid() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valid( Handle, CachedSelectors.valid, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		public struct ObjectiveCPropertyImplementation {
			public uint contextId {
				get { return _handle.contextId(); }
			}
			public NObjective.RuntimeObject layer {
				get { return _handle.layer(); }
			}
			public char valid {
				get { return _handle.valid(); }
			}
			private readonly CAContext _handle;
			public ObjectiveCPropertyImplementation( CAContext value ) {
				_handle = value;
			}
		}
		public ObjectiveCPropertyImplementation Properties {
			get { return new ObjectiveCPropertyImplementation( this ); }
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr allContexts( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern uint contextId( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr contextWithCGSConnection_options_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, uint connection, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern uint createSlot( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void deleteSlot_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, uint slot );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void invalidate( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr layer( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr localContext( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr localContextWithOptions_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr objectForSlot_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, uint slot );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr remoteContext( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr remoteContextWithOptions_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setClientPort_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, uint port );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setLayer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject layer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setObject_forSlot_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @object, uint forSlot );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char valid( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector allContexts = "allContexts";
			public static readonly Selector contextId = "contextId";
			public static readonly Selector contextWithCGSConnection_options_ = "contextWithCGSConnection:options:";
			public static readonly Selector createSlot = "createSlot";
			public static readonly Selector deleteSlot_ = "deleteSlot:";
			public static readonly Selector invalidate = "invalidate";
			public static readonly Selector layer = "layer";
			public static readonly Selector localContext = "localContext";
			public static readonly Selector localContextWithOptions_ = "localContextWithOptions:";
			public static readonly Selector objectForSlot_ = "objectForSlot:";
			public static readonly Selector remoteContext = "remoteContext";
			public static readonly Selector remoteContextWithOptions_ = "remoteContextWithOptions:";
			public static readonly Selector setClientPort_ = "setClientPort:";
			public static readonly Selector setLayer_ = "setLayer:";
			public static readonly Selector setObject_forSlot_ = "setObject:forSlot:";
			public static readonly Selector valid = "valid";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CAContext ) )]
	public struct CAContextImpl : IEquatable<CAContextImpl> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAContextImpl;
		public static implicit operator CAContext( CAContextImpl value ) {
			return new CAContext( value.Handle );
		}
		public static implicit operator NSObject( CAContextImpl value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAContextImpl value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAContextImpl value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAContextImpl?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAContextImpl value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAContextImpl value1, CAContextImpl value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAContextImpl value1, CAContextImpl value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAContextImpl( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAContextImpl alloc() {
			return new CAContextImpl( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static void initialize() {
			RuntimeObject ___occuredException;
			NativeMethods.initialize( ClassHandle, CachedSelectors.initialize, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject initRemoteWithOptions_( NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initRemoteWithOptions_( Handle, CachedSelectors.initRemoteWithOptions_, out ___occuredException, sizeof( NObjective.RuntimeObject ), options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCGSConnection_options_( uint connection, NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCGSConnection_options_( Handle, CachedSelectors.initWithCGSConnection_options_, out ___occuredException, sizeof( uint ) + sizeof( NObjective.RuntimeObject ), connection, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithOptions_( NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithOptions_( Handle, CachedSelectors.initWithOptions_, out ___occuredException, sizeof( NObjective.RuntimeObject ), options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void release() {
			RuntimeObject ___occuredException;
			NativeMethods.release( Handle, CachedSelectors.release, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void initialize( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initRemoteWithOptions_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCGSConnection_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, uint connection, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithOptions_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void release( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector initialize = "initialize";
			public static readonly Selector initRemoteWithOptions_ = "initRemoteWithOptions:";
			public static readonly Selector initWithCGSConnection_options_ = "initWithCGSConnection:options:";
			public static readonly Selector initWithOptions_ = "initWithOptions:";
			public static readonly Selector release = "release";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAEmitterCell : IEquatable<CAEmitterCell> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAEmitterCell;
		public static implicit operator NSObject( CAEmitterCell value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAEmitterCell value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAEmitterCell value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAEmitterCell?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAEmitterCell value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAEmitterCell value1, CAEmitterCell value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAEmitterCell value1, CAEmitterCell value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAEmitterCell( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAEmitterCell alloc() {
			return new CAEmitterCell( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static char automaticallyNotifiesObserversForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.automaticallyNotifiesObserversForKey_( ClassHandle, CachedSelectors.automaticallyNotifiesObserversForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static char CAML_supportedClass() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.CAML_supportedClass( ClassHandle, CachedSelectors.CAML_supportedClass, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static NObjective.RuntimeObject cell() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.cell( ClassHandle, CachedSelectors.cell, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject defaultValueForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.defaultValueForKey_( ClassHandle, CachedSelectors.defaultValueForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject properties() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.properties( ClassHandle, CachedSelectors.properties, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject attributesForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.attributesForKey_( Handle, CachedSelectors.attributesForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject attributesForKeyPath_( NObjective.RuntimeObject path ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.attributesForKeyPath_( Handle, CachedSelectors.attributesForKeyPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ), path );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void encodeWithCoder_( NSCoder coder ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeWithCoder_( Handle, CachedSelectors.encodeWithCoder_, out ___occuredException, sizeof( NSCoder ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject initWithCoder_( NObjective.RuntimeObject coder ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCoder_( Handle, CachedSelectors.initWithCoder_, out ___occuredException, sizeof( NObjective.RuntimeObject ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void setValue_forKey_( NObjective.RuntimeObject value, NObjective.RuntimeObject forKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forKey_( Handle, CachedSelectors.setValue_forKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setValue_forKeyPath_( NObjective.RuntimeObject value, NObjective.RuntimeObject forKeyPath ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forKeyPath_( Handle, CachedSelectors.setValue_forKeyPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forKeyPath );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setValue_forUndefinedKey_( NObjective.RuntimeObject value, NObjective.RuntimeObject forUndefinedKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forUndefinedKey_( Handle, CachedSelectors.setValue_forUndefinedKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forUndefinedKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public bool shouldArchiveValueForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.shouldArchiveValueForKey_( Handle, CachedSelectors.shouldArchiveValueForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject valueForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForKey_( Handle, CachedSelectors.valueForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject valueForKeyPath_( NObjective.RuntimeObject path ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForKeyPath_( Handle, CachedSelectors.valueForKeyPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ), path );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject valueForUndefinedKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForUndefinedKey_( Handle, CachedSelectors.valueForUndefinedKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr attributesForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr attributesForKeyPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject path );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char automaticallyNotifiesObserversForKey_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char CAML_supportedClass( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr cell( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr defaultValueForKey_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSCoder coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr properties( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forKeyPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forKeyPath );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forUndefinedKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forUndefinedKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool shouldArchiveValueForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForKeyPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject path );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForUndefinedKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
		}
		static internal class CachedSelectors {
			public static readonly Selector attributesForKey_ = "attributesForKey:";
			public static readonly Selector attributesForKeyPath_ = "attributesForKeyPath:";
			public static readonly Selector automaticallyNotifiesObserversForKey_ = "automaticallyNotifiesObserversForKey:";
			public static readonly Selector CAML_supportedClass = "CAML_supportedClass";
			public static readonly Selector cell = "cell";
			public static readonly Selector defaultValueForKey_ = "defaultValueForKey:";
			public static readonly Selector encodeWithCoder_ = "encodeWithCoder:";
			public static readonly Selector initWithCoder_ = "initWithCoder:";
			public static readonly Selector properties = "properties";
			public static readonly Selector setValue_forKey_ = "setValue:forKey:";
			public static readonly Selector setValue_forKeyPath_ = "setValue:forKeyPath:";
			public static readonly Selector setValue_forUndefinedKey_ = "setValue:forUndefinedKey:";
			public static readonly Selector shouldArchiveValueForKey_ = "shouldArchiveValueForKey:";
			public static readonly Selector valueForKey_ = "valueForKey:";
			public static readonly Selector valueForKeyPath_ = "valueForKeyPath:";
			public static readonly Selector valueForUndefinedKey_ = "valueForUndefinedKey:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CALayer ) )]
	public struct CAEmitterLayer : IEquatable<CAEmitterLayer> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAEmitterLayer;
		public static implicit operator CALayer( CAEmitterLayer value ) {
			return new CALayer( value.Handle );
		}
		public static implicit operator NSObject( CAEmitterLayer value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAEmitterLayer value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAEmitterLayer value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAEmitterLayer?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAEmitterLayer value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAEmitterLayer value1, CAEmitterLayer value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAEmitterLayer value1, CAEmitterLayer value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAEmitterLayer( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAEmitterLayer alloc() {
			return new CAEmitterLayer( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public void didChangeValueForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			NativeMethods.didChangeValueForKey_( Handle, CachedSelectors.didChangeValueForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		public struct ObjectiveCPropertyImplementation {
			public float speed {
				get { return new CALayer( _handle ).speed(); }
			}
			private readonly CAEmitterLayer _handle;
			public ObjectiveCPropertyImplementation( CAEmitterLayer value ) {
				_handle = value;
			}
		}
		public ObjectiveCPropertyImplementation Properties {
			get { return new ObjectiveCPropertyImplementation( this ); }
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void didChangeValueForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
		}
		static internal class CachedSelectors {
			public static readonly Selector didChangeValueForKey_ = "didChangeValueForKey:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAFilter : IEquatable<CAFilter> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAFilter;
		public static implicit operator NSObject( CAFilter value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAFilter value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAFilter value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAFilter?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAFilter value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAFilter value1, CAFilter value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAFilter value1, CAFilter value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAFilter( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAFilter alloc() {
			return new CAFilter( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static char automaticallyNotifiesObserversForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.automaticallyNotifiesObserversForKey_( ClassHandle, CachedSelectors.automaticallyNotifiesObserversForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static NObjective.RuntimeObject filterTypes() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterTypes( ClassHandle, CachedSelectors.filterTypes, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject filterWithName_( NObjective.RuntimeObject name ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterWithName_( ClassHandle, CachedSelectors.filterWithName_, out ___occuredException, sizeof( NObjective.RuntimeObject ), name );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject filterWithType_( NObjective.RuntimeObject type ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterWithType_( ClassHandle, CachedSelectors.filterWithType_, out ___occuredException, sizeof( NObjective.RuntimeObject ), type );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject attributesForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.attributesForKey_( Handle, CachedSelectors.attributesForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject attributesForKeyPath_( NObjective.RuntimeObject path ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.attributesForKeyPath_( Handle, CachedSelectors.attributesForKeyPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ), path );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public char enabled() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.enabled( Handle, CachedSelectors.enabled, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void encodeWithCoder_( NSCoder coder ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeWithCoder_( Handle, CachedSelectors.encodeWithCoder_, out ___occuredException, sizeof( NSCoder ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject initWithCoder_( NObjective.RuntimeObject coder ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCoder_( Handle, CachedSelectors.initWithCoder_, out ___occuredException, sizeof( NObjective.RuntimeObject ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithName_( NObjective.RuntimeObject name ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithName_( Handle, CachedSelectors.initWithName_, out ___occuredException, sizeof( NObjective.RuntimeObject ), name );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithType_( NObjective.RuntimeObject type ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithType_( Handle, CachedSelectors.initWithType_, out ___occuredException, sizeof( NObjective.RuntimeObject ), type );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject inputKeys() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.inputKeys( Handle, CachedSelectors.inputKeys, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public bool isEnabled() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isEnabled( Handle, CachedSelectors.isEnabled, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject name() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.name( Handle, CachedSelectors.name, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputKeys() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputKeys( Handle, CachedSelectors.outputKeys, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void setDefaults() {
			RuntimeObject ___occuredException;
			NativeMethods.setDefaults( Handle, CachedSelectors.setDefaults, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setEnabled_( char enabled ) {
			RuntimeObject ___occuredException;
			NativeMethods.setEnabled_( Handle, CachedSelectors.setEnabled_, out ___occuredException, sizeof( char ), enabled );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setName_( NObjective.RuntimeObject name ) {
			RuntimeObject ___occuredException;
			NativeMethods.setName_( Handle, CachedSelectors.setName_, out ___occuredException, sizeof( NObjective.RuntimeObject ), name );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setValue_forKey_( NObjective.RuntimeObject value, NObjective.RuntimeObject forKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forKey_( Handle, CachedSelectors.setValue_forKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject type() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.type( Handle, CachedSelectors.type, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject valueForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForKey_( Handle, CachedSelectors.valueForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		public struct ObjectiveCPropertyImplementation {
			public bool enabled {
				get { return _handle.isEnabled(); }
			}
			public NObjective.RuntimeObject name {
				get { return _handle.name(); }
			}
			public NObjective.RuntimeObject type {
				get { return _handle.type(); }
			}
			private readonly CAFilter _handle;
			public ObjectiveCPropertyImplementation( CAFilter value ) {
				_handle = value;
			}
		}
		public ObjectiveCPropertyImplementation Properties {
			get { return new ObjectiveCPropertyImplementation( this ); }
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr attributesForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr attributesForKeyPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject path );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char automaticallyNotifiesObserversForKey_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char enabled( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSCoder coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterTypes( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithName_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithType_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject type );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithName_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithType_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject type );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr inputKeys( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isEnabled( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr name( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputKeys( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setDefaults( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setEnabled_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, char enabled );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setName_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr type( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
		}
		static internal class CachedSelectors {
			public static readonly Selector attributesForKey_ = "attributesForKey:";
			public static readonly Selector attributesForKeyPath_ = "attributesForKeyPath:";
			public static readonly Selector automaticallyNotifiesObserversForKey_ = "automaticallyNotifiesObserversForKey:";
			public static readonly Selector enabled = "enabled";
			public static readonly Selector encodeWithCoder_ = "encodeWithCoder:";
			public static readonly Selector filterTypes = "filterTypes";
			public static readonly Selector filterWithName_ = "filterWithName:";
			public static readonly Selector filterWithType_ = "filterWithType:";
			public static readonly Selector initWithCoder_ = "initWithCoder:";
			public static readonly Selector initWithName_ = "initWithName:";
			public static readonly Selector initWithType_ = "initWithType:";
			public static readonly Selector inputKeys = "inputKeys";
			public static readonly Selector isEnabled = "isEnabled";
			public static readonly Selector name = "name";
			public static readonly Selector outputKeys = "outputKeys";
			public static readonly Selector setDefaults = "setDefaults";
			public static readonly Selector setEnabled_ = "setEnabled:";
			public static readonly Selector setName_ = "setName:";
			public static readonly Selector setValue_forKey_ = "setValue:forKey:";
			public static readonly Selector type = "type";
			public static readonly Selector valueForKey_ = "valueForKey:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAJS_CATransform3D : IEquatable<CAJS_CATransform3D> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAJS_CATransform3D;
		public static implicit operator NSObject( CAJS_CATransform3D value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAJS_CATransform3D value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAJS_CATransform3D value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAJS_CATransform3D?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAJS_CATransform3D value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAJS_CATransform3D value1, CAJS_CATransform3D value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAJS_CATransform3D value1, CAJS_CATransform3D value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAJS_CATransform3D( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAJS_CATransform3D alloc() {
			return new CAJS_CATransform3D( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public bool isAffine() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isAffine( Handle, CachedSelectors.isAffine, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool isIdentity() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isIdentity( Handle, CachedSelectors.isIdentity, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isAffine( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isIdentity( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector isAffine = "isAffine";
			public static readonly Selector isIdentity = "isIdentity";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAJS_CGColor : IEquatable<CAJS_CGColor> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAJS_CGColor;
		public static implicit operator NSObject( CAJS_CGColor value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAJS_CGColor value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAJS_CGColor value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAJS_CGColor?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAJS_CGColor value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAJS_CGColor value1, CAJS_CGColor value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAJS_CGColor value1, CAJS_CGColor value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAJS_CGColor( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAJS_CGColor alloc() {
			return new CAJS_CGColor( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public float alpha() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.alpha( Handle, CachedSelectors.alpha, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float blackComponent() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blackComponent( Handle, CachedSelectors.blackComponent, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float blueComponent() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blueComponent( Handle, CachedSelectors.blueComponent, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float cyanComponent() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.cyanComponent( Handle, CachedSelectors.cyanComponent, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float grayComponent() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.grayComponent( Handle, CachedSelectors.grayComponent, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float greenComponent() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.greenComponent( Handle, CachedSelectors.greenComponent, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float magentaComponent() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.magentaComponent( Handle, CachedSelectors.magentaComponent, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public uint numberOfComponents() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.numberOfComponents( Handle, CachedSelectors.numberOfComponents, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ( uint ) ___result;
		}
		unsafe public float redComponent() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.redComponent( Handle, CachedSelectors.redComponent, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float yellowComponent() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.yellowComponent( Handle, CachedSelectors.yellowComponent, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float alpha( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float blackComponent( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float blueComponent( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float cyanComponent( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float grayComponent( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float greenComponent( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float magentaComponent( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern uint numberOfComponents( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float redComponent( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float yellowComponent( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector alpha = "alpha";
			public static readonly Selector blackComponent = "blackComponent";
			public static readonly Selector blueComponent = "blueComponent";
			public static readonly Selector cyanComponent = "cyanComponent";
			public static readonly Selector grayComponent = "grayComponent";
			public static readonly Selector greenComponent = "greenComponent";
			public static readonly Selector magentaComponent = "magentaComponent";
			public static readonly Selector numberOfComponents = "numberOfComponents";
			public static readonly Selector redComponent = "redComponent";
			public static readonly Selector yellowComponent = "yellowComponent";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAJS_CGColorSpace : IEquatable<CAJS_CGColorSpace> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAJS_CGColorSpace;
		public static implicit operator NSObject( CAJS_CGColorSpace value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAJS_CGColorSpace value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAJS_CGColorSpace value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAJS_CGColorSpace?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAJS_CGColorSpace value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAJS_CGColorSpace value1, CAJS_CGColorSpace value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAJS_CGColorSpace value1, CAJS_CGColorSpace value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAJS_CGColorSpace( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAJS_CGColorSpace alloc() {
			return new CAJS_CGColorSpace( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public uint numberOfComponents() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.numberOfComponents( Handle, CachedSelectors.numberOfComponents, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ( uint ) ___result;
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern uint numberOfComponents( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector numberOfComponents = "numberOfComponents";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAJS_CGImage : IEquatable<CAJS_CGImage> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAJS_CGImage;
		public static implicit operator NSObject( CAJS_CGImage value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAJS_CGImage value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAJS_CGImage value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAJS_CGImage?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAJS_CGImage value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAJS_CGImage value1, CAJS_CGImage value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAJS_CGImage value1, CAJS_CGImage value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAJS_CGImage( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAJS_CGImage alloc() {
			return new CAJS_CGImage( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAJS_CGPoint : IEquatable<CAJS_CGPoint> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAJS_CGPoint;
		public static implicit operator NSObject( CAJS_CGPoint value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAJS_CGPoint value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAJS_CGPoint value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAJS_CGPoint?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAJS_CGPoint value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAJS_CGPoint value1, CAJS_CGPoint value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAJS_CGPoint value1, CAJS_CGPoint value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAJS_CGPoint( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAJS_CGPoint alloc() {
			return new CAJS_CGPoint( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAJS_CGRect : IEquatable<CAJS_CGRect> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAJS_CGRect;
		public static implicit operator NSObject( CAJS_CGRect value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAJS_CGRect value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAJS_CGRect value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAJS_CGRect?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAJS_CGRect value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAJS_CGRect value1, CAJS_CGRect value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAJS_CGRect value1, CAJS_CGRect value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAJS_CGRect( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAJS_CGRect alloc() {
			return new CAJS_CGRect( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public bool isEmpty() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isEmpty( Handle, CachedSelectors.isEmpty, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool isInfinite() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isInfinite( Handle, CachedSelectors.isInfinite, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool isNull() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isNull( Handle, CachedSelectors.isNull, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float maxX() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.maxX( Handle, CachedSelectors.maxX, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float maxY() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.maxY( Handle, CachedSelectors.maxY, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float midX() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.midX( Handle, CachedSelectors.midX, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float midY() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.midY( Handle, CachedSelectors.midY, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float minX() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.minX( Handle, CachedSelectors.minX, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float minY() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.minY( Handle, CachedSelectors.minY, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isEmpty( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isInfinite( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isNull( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float maxX( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float maxY( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float midX( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float midY( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float minX( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float minY( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector isEmpty = "isEmpty";
			public static readonly Selector isInfinite = "isInfinite";
			public static readonly Selector isNull = "isNull";
			public static readonly Selector maxX = "maxX";
			public static readonly Selector maxY = "maxY";
			public static readonly Selector midX = "midX";
			public static readonly Selector midY = "midY";
			public static readonly Selector minX = "minX";
			public static readonly Selector minY = "minY";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAJS_CGSize : IEquatable<CAJS_CGSize> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAJS_CGSize;
		public static implicit operator NSObject( CAJS_CGSize value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAJS_CGSize value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAJS_CGSize value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAJS_CGSize?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAJS_CGSize value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAJS_CGSize value1, CAJS_CGSize value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAJS_CGSize value1, CAJS_CGSize value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAJS_CGSize( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAJS_CGSize alloc() {
			return new CAJS_CGSize( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSMutableArray ) )]
	public struct CAJSArray : IEquatable<CAJSArray> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAJSArray;
		public static implicit operator NSMutableArray( CAJSArray value ) {
			return new NSMutableArray( value.Handle );
		}
		public static implicit operator NSArray( CAJSArray value ) {
			return new NSArray( value.Handle );
		}
		public static implicit operator NSObject( CAJSArray value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAJSArray value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAJSArray value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAJSArray?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAJSArray value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAJSArray value1, CAJSArray value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAJSArray value1, CAJSArray value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAJSArray( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAJSArray alloc() {
			return new CAJSArray( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject initWithContext_object_( NObjective.RuntimeObject context, System.IntPtr @object ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithContext_object_( Handle, CachedSelectors.initWithContext_object_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ), context, @object );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithContext_object_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject context, System.IntPtr @object );
		}
		static internal class CachedSelectors {
			public static readonly Selector initWithContext_object_ = "initWithContext:object:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAJSCGContext : IEquatable<CAJSCGContext> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAJSCGContext;
		public static implicit operator NSObject( CAJSCGContext value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAJSCGContext value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAJSCGContext value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAJSCGContext?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAJSCGContext value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAJSCGContext value1, CAJSCGContext value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAJSCGContext value1, CAJSCGContext value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAJSCGContext( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAJSCGContext alloc() {
			return new CAJSCGContext( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public float alpha() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.alpha( Handle, CachedSelectors.alpha, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void arc______( float arc, float unnamedParameter, float unnamedParameter2, float unnamedParameter3, float unnamedParameter4, bool unnamedParameter5 ) {
			RuntimeObject ___occuredException;
			NativeMethods.arc______( Handle, CachedSelectors.arc______, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( bool ), arc, unnamedParameter, unnamedParameter2, unnamedParameter3, unnamedParameter4, unnamedParameter5
			 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void arcTo_____( float to, float unnamedParameter, float unnamedParameter2, float unnamedParameter3, float unnamedParameter4 ) {
			RuntimeObject ___occuredException;
			NativeMethods.arcTo_____( Handle, CachedSelectors.arcTo_____, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), to, unnamedParameter, unnamedParameter2, unnamedParameter3, unnamedParameter4 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void beginPath() {
			RuntimeObject ___occuredException;
			NativeMethods.beginPath( Handle, CachedSelectors.beginPath, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void clearRect____( float rect, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 ) {
			RuntimeObject ___occuredException;
			NativeMethods.clearRect____( Handle, CachedSelectors.clearRect____, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), rect, unnamedParameter, unnamedParameter2, unnamedParameter3 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void clip() {
			RuntimeObject ___occuredException;
			NativeMethods.clip( Handle, CachedSelectors.clip, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void closePath() {
			RuntimeObject ___occuredException;
			NativeMethods.closePath( Handle, CachedSelectors.closePath, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject compositeOperation() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.compositeOperation( Handle, CachedSelectors.compositeOperation, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void curveTo______( float to, float unnamedParameter, float unnamedParameter2, float unnamedParameter3, float unnamedParameter4, float unnamedParameter5 ) {
			RuntimeObject ___occuredException;
			NativeMethods.curveTo______( Handle, CachedSelectors.curveTo______, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), to, unnamedParameter, unnamedParameter2, unnamedParameter3, unnamedParameter4, unnamedParameter5
			 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void eoFill() {
			RuntimeObject ___occuredException;
			NativeMethods.eoFill( Handle, CachedSelectors.eoFill, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void fill() {
			RuntimeObject ___occuredException;
			NativeMethods.fill( Handle, CachedSelectors.fill, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void fillRect____( float rect, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 ) {
			RuntimeObject ___occuredException;
			NativeMethods.fillRect____( Handle, CachedSelectors.fillRect____, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), rect, unnamedParameter, unnamedParameter2, unnamedParameter3 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject lineCap() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.lineCap( Handle, CachedSelectors.lineCap, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject lineJoin() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.lineJoin( Handle, CachedSelectors.lineJoin, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void lineTo__( float to, float unnamedParameter ) {
			RuntimeObject ___occuredException;
			NativeMethods.lineTo__( Handle, CachedSelectors.lineTo__, out ___occuredException, sizeof( float ) + sizeof( float ), to, unnamedParameter );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public float lineWidth() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.lineWidth( Handle, CachedSelectors.lineWidth, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float miterLimit() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.miterLimit( Handle, CachedSelectors.miterLimit, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void moveTo__( float to, float unnamedParameter ) {
			RuntimeObject ___occuredException;
			NativeMethods.moveTo__( Handle, CachedSelectors.moveTo__, out ___occuredException, sizeof( float ) + sizeof( float ), to, unnamedParameter );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void quadCurveTo____( float to, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 ) {
			RuntimeObject ___occuredException;
			NativeMethods.quadCurveTo____( Handle, CachedSelectors.quadCurveTo____, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), to, unnamedParameter, unnamedParameter2, unnamedParameter3 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void rect____( float rect, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 ) {
			RuntimeObject ___occuredException;
			NativeMethods.rect____( Handle, CachedSelectors.rect____, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), rect, unnamedParameter, unnamedParameter2, unnamedParameter3 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void restore() {
			RuntimeObject ___occuredException;
			NativeMethods.restore( Handle, CachedSelectors.restore, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void rotate_( float rotate ) {
			RuntimeObject ___occuredException;
			NativeMethods.rotate_( Handle, CachedSelectors.rotate_, out ___occuredException, sizeof( float ), rotate );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void save() {
			RuntimeObject ___occuredException;
			NativeMethods.save( Handle, CachedSelectors.save, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void scale__( float scale, float unnamedParameter ) {
			RuntimeObject ___occuredException;
			NativeMethods.scale__( Handle, CachedSelectors.scale__, out ___occuredException, sizeof( float ) + sizeof( float ), scale, unnamedParameter );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setAlpha_( float alpha ) {
			RuntimeObject ___occuredException;
			NativeMethods.setAlpha_( Handle, CachedSelectors.setAlpha_, out ___occuredException, sizeof( float ), alpha );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setCMYKFillColor_____( float color, float unnamedParameter, float unnamedParameter2, float unnamedParameter3, float unnamedParameter4 ) {
			RuntimeObject ___occuredException;
			NativeMethods.setCMYKFillColor_____( Handle, CachedSelectors.setCMYKFillColor_____, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), color, unnamedParameter, unnamedParameter2, unnamedParameter3, unnamedParameter4 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setCMYKStrokeColor_____( float color, float unnamedParameter, float unnamedParameter2, float unnamedParameter3, float unnamedParameter4 ) {
			RuntimeObject ___occuredException;
			NativeMethods.setCMYKStrokeColor_____( Handle, CachedSelectors.setCMYKStrokeColor_____, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), color, unnamedParameter, unnamedParameter2, unnamedParameter3, unnamedParameter4 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setCompositeOperation_( NObjective.RuntimeObject operation ) {
			RuntimeObject ___occuredException;
			NativeMethods.setCompositeOperation_( Handle, CachedSelectors.setCompositeOperation_, out ___occuredException, sizeof( NObjective.RuntimeObject ), operation );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setGrayFillColor__( float color, float unnamedParameter ) {
			RuntimeObject ___occuredException;
			NativeMethods.setGrayFillColor__( Handle, CachedSelectors.setGrayFillColor__, out ___occuredException, sizeof( float ) + sizeof( float ), color, unnamedParameter );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setGrayStrokeColor__( float color, float unnamedParameter ) {
			RuntimeObject ___occuredException;
			NativeMethods.setGrayStrokeColor__( Handle, CachedSelectors.setGrayStrokeColor__, out ___occuredException, sizeof( float ) + sizeof( float ), color, unnamedParameter );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setLineCap_( NObjective.RuntimeObject cap ) {
			RuntimeObject ___occuredException;
			NativeMethods.setLineCap_( Handle, CachedSelectors.setLineCap_, out ___occuredException, sizeof( NObjective.RuntimeObject ), cap );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setLineJoin_( NObjective.RuntimeObject @join ) {
			RuntimeObject ___occuredException;
			NativeMethods.setLineJoin_( Handle, CachedSelectors.setLineJoin_, out ___occuredException, sizeof( NObjective.RuntimeObject ), @join );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setLineWidth_( float width ) {
			RuntimeObject ___occuredException;
			NativeMethods.setLineWidth_( Handle, CachedSelectors.setLineWidth_, out ___occuredException, sizeof( float ), width );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setMiterLimit_( float limit ) {
			RuntimeObject ___occuredException;
			NativeMethods.setMiterLimit_( Handle, CachedSelectors.setMiterLimit_, out ___occuredException, sizeof( float ), limit );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setRGBFillColor____( float color, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 ) {
			RuntimeObject ___occuredException;
			NativeMethods.setRGBFillColor____( Handle, CachedSelectors.setRGBFillColor____, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), color, unnamedParameter, unnamedParameter2, unnamedParameter3 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setRGBStrokeColor____( float color, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 ) {
			RuntimeObject ___occuredException;
			NativeMethods.setRGBStrokeColor____( Handle, CachedSelectors.setRGBStrokeColor____, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), color, unnamedParameter, unnamedParameter2, unnamedParameter3 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setShadow___( float shadow, float unnamedParameter, float unnamedParameter2 ) {
			RuntimeObject ___occuredException;
			NativeMethods.setShadow___( Handle, CachedSelectors.setShadow___, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ), shadow, unnamedParameter, unnamedParameter2 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void stroke() {
			RuntimeObject ___occuredException;
			NativeMethods.stroke( Handle, CachedSelectors.stroke, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void strokeRect____( float rect, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 ) {
			RuntimeObject ___occuredException;
			NativeMethods.strokeRect____( Handle, CachedSelectors.strokeRect____, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), rect, unnamedParameter, unnamedParameter2, unnamedParameter3 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void translate__( float translate, float unnamedParameter ) {
			RuntimeObject ___occuredException;
			NativeMethods.translate__( Handle, CachedSelectors.translate__, out ___occuredException, sizeof( float ) + sizeof( float ), translate, unnamedParameter );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float alpha( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void arc______( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float arc, float unnamedParameter, float unnamedParameter2, float unnamedParameter3, float unnamedParameter4, bool unnamedParameter5
			 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void arcTo_____( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float to, float unnamedParameter, float unnamedParameter2, float unnamedParameter3, float unnamedParameter4 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void beginPath( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void clearRect____( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float rect, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void clip( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void closePath( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr compositeOperation( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void curveTo______( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float to, float unnamedParameter, float unnamedParameter2, float unnamedParameter3, float unnamedParameter4, float unnamedParameter5
			 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void eoFill( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void fill( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void fillRect____( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float rect, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr lineCap( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr lineJoin( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void lineTo__( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float to, float unnamedParameter );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float lineWidth( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float miterLimit( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void moveTo__( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float to, float unnamedParameter );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void quadCurveTo____( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float to, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void rect____( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float rect, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void restore( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void rotate_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float rotate );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void save( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void scale__( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float scale, float unnamedParameter );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setAlpha_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float alpha );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setCMYKFillColor_____( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float color, float unnamedParameter, float unnamedParameter2, float unnamedParameter3, float unnamedParameter4 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setCMYKStrokeColor_____( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float color, float unnamedParameter, float unnamedParameter2, float unnamedParameter3, float unnamedParameter4 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setCompositeOperation_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject operation );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setGrayFillColor__( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float color, float unnamedParameter );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setGrayStrokeColor__( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float color, float unnamedParameter );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setLineCap_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject cap );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setLineJoin_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @join );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setLineWidth_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float width );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setMiterLimit_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float limit );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setRGBFillColor____( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float color, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setRGBStrokeColor____( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float color, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setShadow___( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float shadow, float unnamedParameter, float unnamedParameter2 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void stroke( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void strokeRect____( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float rect, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void translate__( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float translate, float unnamedParameter );
		}
		static internal class CachedSelectors {
			public static readonly Selector alpha = "alpha";
			public static readonly Selector arc______ = "arc::::::";
			public static readonly Selector arcTo_____ = "arcTo:::::";
			public static readonly Selector beginPath = "beginPath";
			public static readonly Selector clearRect____ = "clearRect::::";
			public static readonly Selector clip = "clip";
			public static readonly Selector closePath = "closePath";
			public static readonly Selector compositeOperation = "compositeOperation";
			public static readonly Selector curveTo______ = "curveTo::::::";
			public static readonly Selector eoFill = "eoFill";
			public static readonly Selector fill = "fill";
			public static readonly Selector fillRect____ = "fillRect::::";
			public static readonly Selector lineCap = "lineCap";
			public static readonly Selector lineJoin = "lineJoin";
			public static readonly Selector lineTo__ = "lineTo::";
			public static readonly Selector lineWidth = "lineWidth";
			public static readonly Selector miterLimit = "miterLimit";
			public static readonly Selector moveTo__ = "moveTo::";
			public static readonly Selector quadCurveTo____ = "quadCurveTo::::";
			public static readonly Selector rect____ = "rect::::";
			public static readonly Selector restore = "restore";
			public static readonly Selector rotate_ = "rotate:";
			public static readonly Selector save = "save";
			public static readonly Selector scale__ = "scale::";
			public static readonly Selector setAlpha_ = "setAlpha:";
			public static readonly Selector setCMYKFillColor_____ = "setCMYKFillColor:::::";
			public static readonly Selector setCMYKStrokeColor_____ = "setCMYKStrokeColor:::::";
			public static readonly Selector setCompositeOperation_ = "setCompositeOperation:";
			public static readonly Selector setGrayFillColor__ = "setGrayFillColor::";
			public static readonly Selector setGrayStrokeColor__ = "setGrayStrokeColor::";
			public static readonly Selector setLineCap_ = "setLineCap:";
			public static readonly Selector setLineJoin_ = "setLineJoin:";
			public static readonly Selector setLineWidth_ = "setLineWidth:";
			public static readonly Selector setMiterLimit_ = "setMiterLimit:";
			public static readonly Selector setRGBFillColor____ = "setRGBFillColor::::";
			public static readonly Selector setRGBStrokeColor____ = "setRGBStrokeColor::::";
			public static readonly Selector setShadow___ = "setShadow:::";
			public static readonly Selector stroke = "stroke";
			public static readonly Selector strokeRect____ = "strokeRect::::";
			public static readonly Selector translate__ = "translate::";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSMutableDictionary ) )]
	public struct CAJSDictionary : IEquatable<CAJSDictionary> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAJSDictionary;
		public static implicit operator NSMutableDictionary( CAJSDictionary value ) {
			return new NSMutableDictionary( value.Handle );
		}
		public static implicit operator NSDictionary( CAJSDictionary value ) {
			return new NSDictionary( value.Handle );
		}
		public static implicit operator NSObject( CAJSDictionary value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAJSDictionary value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAJSDictionary value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAJSDictionary?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAJSDictionary value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAJSDictionary value1, CAJSDictionary value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAJSDictionary value1, CAJSDictionary value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAJSDictionary( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAJSDictionary alloc() {
			return new CAJSDictionary( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject initWithContext_object_( NObjective.RuntimeObject context, System.IntPtr @object ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithContext_object_( Handle, CachedSelectors.initWithContext_object_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ), context, @object );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithContext_object_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject context, System.IntPtr @object );
		}
		static internal class CachedSelectors {
			public static readonly Selector initWithContext_object_ = "initWithContext:object:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSEnumerator ) )]
	public struct CAJSDictionaryKeyEnumerator : IEquatable<CAJSDictionaryKeyEnumerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAJSDictionaryKeyEnumerator;
		public static implicit operator NSEnumerator( CAJSDictionaryKeyEnumerator value ) {
			return new NSEnumerator( value.Handle );
		}
		public static implicit operator NSObject( CAJSDictionaryKeyEnumerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAJSDictionaryKeyEnumerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAJSDictionaryKeyEnumerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAJSDictionaryKeyEnumerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAJSDictionaryKeyEnumerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAJSDictionaryKeyEnumerator value1, CAJSDictionaryKeyEnumerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAJSDictionaryKeyEnumerator value1, CAJSDictionaryKeyEnumerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAJSDictionaryKeyEnumerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAJSDictionaryKeyEnumerator alloc() {
			return new CAJSDictionaryKeyEnumerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAJSFunction : IEquatable<CAJSFunction> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAJSFunction;
		public static implicit operator NSObject( CAJSFunction value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAJSFunction value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAJSFunction value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAJSFunction?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAJSFunction value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAJSFunction value1, CAJSFunction value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAJSFunction value1, CAJSFunction value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAJSFunction( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAJSFunction alloc() {
			return new CAJSFunction( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public void action_( NObjective.RuntimeObject action ) {
			RuntimeObject ___occuredException;
			NativeMethods.action_( Handle, CachedSelectors.action_, out ___occuredException, sizeof( NObjective.RuntimeObject ), action );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject initWithContext_object_( NObjective.RuntimeObject context, System.IntPtr @object ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithContext_object_( Handle, CachedSelectors.initWithContext_object_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ), context, @object );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void runActionForKey_object_arguments_( NObjective.RuntimeObject key, NObjective.RuntimeObject @object, NObjective.RuntimeObject arguments ) {
			RuntimeObject ___occuredException;
			NativeMethods.runActionForKey_object_arguments_( Handle, CachedSelectors.runActionForKey_object_arguments_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), key, @object, arguments );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void action_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject action );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithContext_object_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject context, System.IntPtr @object );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void runActionForKey_object_arguments_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key, NObjective.RuntimeObject @object, NObjective.RuntimeObject arguments );
		}
		static internal class CachedSelectors {
			public static readonly Selector action_ = "action:";
			public static readonly Selector initWithContext_object_ = "initWithContext:object:";
			public static readonly Selector runActionForKey_object_arguments_ = "runActionForKey:object:arguments:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSString ) )]
	public struct CAJSString : IEquatable<CAJSString> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAJSString;
		public static implicit operator NSString( CAJSString value ) {
			return new NSString( value.Handle );
		}
		public static implicit operator NSObject( CAJSString value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAJSString value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAJSString value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAJSString?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAJSString value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAJSString value1, CAJSString value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAJSString value1, CAJSString value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAJSString( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAJSString alloc() {
			return new CAJSString( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject initWithJSString_( System.IntPtr @string ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithJSString_( Handle, CachedSelectors.initWithJSString_, out ___occuredException, sizeof( System.IntPtr ), @string );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithJSString_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr @string );
		}
		static internal class CachedSelectors {
			public static readonly Selector initWithJSString_ = "initWithJSString:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CAPropertyAnimation ) )]
	public struct CAKeyframeAnimation : IEquatable<CAKeyframeAnimation> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAKeyframeAnimation;
		public static implicit operator CAPropertyAnimation( CAKeyframeAnimation value ) {
			return new CAPropertyAnimation( value.Handle );
		}
		public static implicit operator CAAnimation( CAKeyframeAnimation value ) {
			return new CAAnimation( value.Handle );
		}
		public static implicit operator NSObject( CAKeyframeAnimation value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAKeyframeAnimation value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAKeyframeAnimation value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAKeyframeAnimation?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAKeyframeAnimation value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAKeyframeAnimation value1, CAKeyframeAnimation value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAKeyframeAnimation value1, CAKeyframeAnimation value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAKeyframeAnimation( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAKeyframeAnimation alloc() {
			return new CAKeyframeAnimation( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject calculationMode() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.calculationMode( Handle, CachedSelectors.calculationMode, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject keyTimes() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.keyTimes( Handle, CachedSelectors.keyTimes, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject rotationMode() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.rotationMode( Handle, CachedSelectors.rotationMode, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject timingFunctions() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.timingFunctions( Handle, CachedSelectors.timingFunctions, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject values() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.values( Handle, CachedSelectors.values, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		public struct ObjectiveCPropertyImplementation {
			public NObjective.RuntimeObject calculationMode {
				get { return _handle.calculationMode(); }
			}
			public NObjective.RuntimeObject keyTimes {
				get { return _handle.keyTimes(); }
			}
			public NObjective.RuntimeObject rotationMode {
				get { return _handle.rotationMode(); }
			}
			public NObjective.RuntimeObject timingFunctions {
				get { return _handle.timingFunctions(); }
			}
			public NObjective.RuntimeObject values {
				get { return _handle.values(); }
			}
			private readonly CAKeyframeAnimation _handle;
			public ObjectiveCPropertyImplementation( CAKeyframeAnimation value ) {
				_handle = value;
			}
		}
		public ObjectiveCPropertyImplementation Properties {
			get { return new ObjectiveCPropertyImplementation( this ); }
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr calculationMode( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr keyTimes( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr rotationMode( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr timingFunctions( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr values( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector calculationMode = "calculationMode";
			public static readonly Selector keyTimes = "keyTimes";
			public static readonly Selector rotationMode = "rotationMode";
			public static readonly Selector timingFunctions = "timingFunctions";
			public static readonly Selector values = "values";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CALayer : IEquatable<CALayer> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CALayer;
		public static implicit operator NSObject( CALayer value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CALayer value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CALayer value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CALayer?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CALayer value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CALayer value1, CALayer value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CALayer value1, CALayer value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CALayer( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CALayer alloc() {
			return new CALayer( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static char automaticallyNotifiesObserversForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.automaticallyNotifiesObserversForKey_( ClassHandle, CachedSelectors.automaticallyNotifiesObserversForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static char CAML_supportedClass() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.CAML_supportedClass( ClassHandle, CachedSelectors.CAML_supportedClass, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static NObjective.RuntimeObject defaultActionForKey_( string key ) {
			RuntimeObject ___occuredException;
			var ___wrappedkey = Runtime.CreateStringProxy( key );
			var ___result = NativeMethods.defaultActionForKey_( ClassHandle, CachedSelectors.defaultActionForKey_, out ___occuredException, sizeof( IntPtr ), ___wrappedkey );
			Runtime.ReleaseNativeObject( ___wrappedkey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject defaultValueForKey_( string key ) {
			RuntimeObject ___occuredException;
			var ___wrappedkey = Runtime.CreateStringProxy( key );
			var ___result = NativeMethods.defaultValueForKey_( ClassHandle, CachedSelectors.defaultValueForKey_, out ___occuredException, sizeof( IntPtr ), ___wrappedkey );
			Runtime.ReleaseNativeObject( ___wrappedkey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static void initialize() {
			RuntimeObject ___occuredException;
			NativeMethods.initialize( ClassHandle, CachedSelectors.initialize, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static NObjective.RuntimeObject layer() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.layer( ClassHandle, CachedSelectors.layer, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject properties() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.properties( ClassHandle, CachedSelectors.properties, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject actionForKey_( string key ) {
			RuntimeObject ___occuredException;
			var ___wrappedkey = Runtime.CreateStringProxy( key );
			var ___result = NativeMethods.actionForKey_( Handle, CachedSelectors.actionForKey_, out ___occuredException, sizeof( IntPtr ), ___wrappedkey );
			Runtime.ReleaseNativeObject( ___wrappedkey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void addAnimation_forKey_( CAAnimation animation, string forKey ) {
			RuntimeObject ___occuredException;
			var ___wrappedforKey = Runtime.CreateStringProxy( forKey );
			NativeMethods.addAnimation_forKey_( Handle, CachedSelectors.addAnimation_forKey_, out ___occuredException, sizeof( CAAnimation ) + sizeof( IntPtr ), animation, ___wrappedforKey );
			Runtime.ReleaseNativeObject( ___wrappedforKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void addConstraint_( CAConstraint constraint ) {
			RuntimeObject ___occuredException;
			NativeMethods.addConstraint_( Handle, CachedSelectors.addConstraint_, out ___occuredException, sizeof( CAConstraint ), constraint );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void addSublayer_( CALayer sublayer ) {
			RuntimeObject ___occuredException;
			NativeMethods.addSublayer_( Handle, CachedSelectors.addSublayer_, out ___occuredException, sizeof( CALayer ), sublayer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public CGAffineTransform affineTransform() {
			CGAffineTransform ___result;
			RuntimeObject ___occuredException;
			NativeMethods.affineTransform( out ___result, sizeof( CGAffineTransform ), Handle, CachedSelectors.affineTransform, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject ancestorSharedWithLayer_( NObjective.RuntimeObject layer ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.ancestorSharedWithLayer_( Handle, CachedSelectors.ancestorSharedWithLayer_, out ___occuredException, sizeof( NObjective.RuntimeObject ), layer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public CAAnimation animationForKey_( string key ) {
			RuntimeObject ___occuredException;
			var ___wrappedkey = Runtime.CreateStringProxy( key );
			var ___result = NativeMethods.animationForKey_( Handle, CachedSelectors.animationForKey_, out ___occuredException, sizeof( IntPtr ), ___wrappedkey );
			Runtime.ReleaseNativeObject( ___wrappedkey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CAAnimation( ___result );
		}
		unsafe public NObjective.RuntimeObject attributesForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.attributesForKey_( Handle, CachedSelectors.attributesForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject attributesForKeyPath_( NObjective.RuntimeObject path ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.attributesForKeyPath_( Handle, CachedSelectors.attributesForKeyPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ), path );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public uint autoresizingMask() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.autoresizingMask( Handle, CachedSelectors.autoresizingMask, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ( uint ) ___result;
		}
		unsafe public char autoreverses() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.autoreverses( Handle, CachedSelectors.autoreverses, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject backgroundFilters() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.backgroundFilters( Handle, CachedSelectors.backgroundFilters, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public double beginTime() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.beginTime( Handle, CachedSelectors.beginTime, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float borderWidth() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.borderWidth( Handle, CachedSelectors.borderWidth, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public char clearsContext() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.clearsContext( Handle, CachedSelectors.clearsContext, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject compositingFilter() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.compositingFilter( Handle, CachedSelectors.compositingFilter, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public bool containsPoint_( CGPoint point ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.containsPoint_( Handle, CachedSelectors.containsPoint_, out ___occuredException, sizeof( CGPoint ), point );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject contents() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.contents( Handle, CachedSelectors.contents, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject contentsGravity() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.contentsGravity( Handle, CachedSelectors.contentsGravity, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public CGPoint convertPoint_fromLayer_( CGPoint point, CALayer fromLayer ) {
			CGPoint ___result;
			RuntimeObject ___occuredException;
			NativeMethods.convertPoint_fromLayer_( out ___result, sizeof( CGPoint ), Handle, CachedSelectors.convertPoint_fromLayer_, out ___occuredException, sizeof( CGPoint ) + sizeof( CALayer ), point, fromLayer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public CGPoint convertPoint_toLayer_( CGPoint point, CALayer toLayer ) {
			CGPoint ___result;
			RuntimeObject ___occuredException;
			NativeMethods.convertPoint_toLayer_( out ___result, sizeof( CGPoint ), Handle, CachedSelectors.convertPoint_toLayer_, out ___occuredException, sizeof( CGPoint ) + sizeof( CALayer ), point, toLayer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public CGRect convertRect_fromLayer_( CGRect rect, CALayer fromLayer ) {
			CGRect ___result;
			RuntimeObject ___occuredException;
			NativeMethods.convertRect_fromLayer_( out ___result, sizeof( CGRect ), Handle, CachedSelectors.convertRect_fromLayer_, out ___occuredException, sizeof( CGRect ) + sizeof( CALayer ), rect, fromLayer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public CGRect convertRect_toLayer_( CGRect rect, CALayer toLayer ) {
			CGRect ___result;
			RuntimeObject ___occuredException;
			NativeMethods.convertRect_toLayer_( out ___result, sizeof( CGRect ), Handle, CachedSelectors.convertRect_toLayer_, out ___occuredException, sizeof( CGRect ) + sizeof( CALayer ), rect, toLayer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public double convertTime_fromLayer_( double time, CALayer fromLayer ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.convertTime_fromLayer_( Handle, CachedSelectors.convertTime_fromLayer_, out ___occuredException, sizeof( double ) + sizeof( CALayer ), time, fromLayer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public double convertTime_toLayer_( double time, CALayer toLayer ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.convertTime_toLayer_( Handle, CachedSelectors.convertTime_toLayer_, out ___occuredException, sizeof( double ) + sizeof( CALayer ), time, toLayer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float cornerRadius() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.cornerRadius( Handle, CachedSelectors.cornerRadius, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject @delegate() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.@delegate( Handle, CachedSelectors.@delegate, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void display() {
			RuntimeObject ___occuredException;
			NativeMethods.display( Handle, CachedSelectors.display, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void displayIfNeeded() {
			RuntimeObject ___occuredException;
			NativeMethods.displayIfNeeded( Handle, CachedSelectors.displayIfNeeded, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public char doubleSided() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.doubleSided( Handle, CachedSelectors.doubleSided, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void drawInContext_( IntPtr context ) {
			RuntimeObject ___occuredException;
			NativeMethods.drawInContext_( Handle, CachedSelectors.drawInContext_, out ___occuredException, sizeof( IntPtr ), context );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public double duration() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.duration( Handle, CachedSelectors.duration, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public uint edgeAntialiasingMask() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.edgeAntialiasingMask( Handle, CachedSelectors.edgeAntialiasingMask, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ( uint ) ___result;
		}
		unsafe public void encodeWithCoder_( NSCoder coder ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeWithCoder_( Handle, CachedSelectors.encodeWithCoder_, out ___occuredException, sizeof( NSCoder ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject fillMode() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.fillMode( Handle, CachedSelectors.fillMode, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject filters() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filters( Handle, CachedSelectors.filters, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public char floating() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.floating( Handle, CachedSelectors.floating, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public char hidden() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.hidden( Handle, CachedSelectors.hidden, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public CALayer hitTest_( CGPoint test ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.hitTest_( Handle, CachedSelectors.hitTest_, out ___occuredException, sizeof( CGPoint ), test );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CALayer( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCoder_( NObjective.RuntimeObject coder ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCoder_( Handle, CachedSelectors.initWithCoder_, out ___occuredException, sizeof( NObjective.RuntimeObject ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithLayer_( NObjective.RuntimeObject layer ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithLayer_( Handle, CachedSelectors.initWithLayer_, out ___occuredException, sizeof( NObjective.RuntimeObject ), layer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void insertSublayer_above_( CALayer sublayer, CALayer above ) {
			RuntimeObject ___occuredException;
			NativeMethods.insertSublayer_above_( Handle, CachedSelectors.insertSublayer_above_, out ___occuredException, sizeof( CALayer ) + sizeof( CALayer ), sublayer, above );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void insertSublayer_atIndex_( CALayer sublayer, uint atIndex ) {
			RuntimeObject ___occuredException;
			NativeMethods.insertSublayer_atIndex_( Handle, CachedSelectors.insertSublayer_atIndex_, out ___occuredException, sizeof( CALayer ) + sizeof( uint ), sublayer, atIndex );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void insertSublayer_below_( CALayer sublayer, CALayer below ) {
			RuntimeObject ___occuredException;
			NativeMethods.insertSublayer_below_( Handle, CachedSelectors.insertSublayer_below_, out ___occuredException, sizeof( CALayer ) + sizeof( CALayer ), sublayer, below );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void invalidateContents() {
			RuntimeObject ___occuredException;
			NativeMethods.invalidateContents( Handle, CachedSelectors.invalidateContents, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public bool isDescendantOf_( NObjective.RuntimeObject of ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isDescendantOf_( Handle, CachedSelectors.isDescendantOf_, out ___occuredException, sizeof( NObjective.RuntimeObject ), of );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool isHidden() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isHidden( Handle, CachedSelectors.isHidden, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool isOpaque() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isOpaque( Handle, CachedSelectors.isOpaque, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject layerBeingDrawn() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.layerBeingDrawn( Handle, CachedSelectors.layerBeingDrawn, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void layerDidBecomeVisible_( char visible ) {
			RuntimeObject ___occuredException;
			NativeMethods.layerDidBecomeVisible_( Handle, CachedSelectors.layerDidBecomeVisible_, out ___occuredException, sizeof( char ), visible );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void layoutIfNeeded() {
			RuntimeObject ___occuredException;
			NativeMethods.layoutIfNeeded( Handle, CachedSelectors.layoutIfNeeded, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject layoutManager() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.layoutManager( Handle, CachedSelectors.layoutManager, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void layoutSublayers() {
			RuntimeObject ___occuredException;
			NativeMethods.layoutSublayers( Handle, CachedSelectors.layoutSublayers, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject magnificationFilter() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.magnificationFilter( Handle, CachedSelectors.magnificationFilter, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject mask() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.mask( Handle, CachedSelectors.mask, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public char masksToBounds() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.masksToBounds( Handle, CachedSelectors.masksToBounds, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject minificationFilter() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.minificationFilter( Handle, CachedSelectors.minificationFilter, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public float minificationFilterBias() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.minificationFilterBias( Handle, CachedSelectors.minificationFilterBias, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject modelLayer() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.modelLayer( Handle, CachedSelectors.modelLayer, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject name() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.name( Handle, CachedSelectors.name, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public float nearClippingDepth() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.nearClippingDepth( Handle, CachedSelectors.nearClippingDepth, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public char needsDisplay() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.needsDisplay( Handle, CachedSelectors.needsDisplay, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public char needsDisplayOnBoundsChange() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.needsDisplayOnBoundsChange( Handle, CachedSelectors.needsDisplayOnBoundsChange, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public char needsLayout() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.needsLayout( Handle, CachedSelectors.needsLayout, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float opacity() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.opacity( Handle, CachedSelectors.opacity, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public char opaque() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.opaque( Handle, CachedSelectors.opaque, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public CGSize preferredFrameSize() {
			CGSize ___result;
			RuntimeObject ___occuredException;
			NativeMethods.preferredFrameSize( out ___result, sizeof( CGSize ), Handle, CachedSelectors.preferredFrameSize, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject presentationLayer() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.presentationLayer( Handle, CachedSelectors.presentationLayer, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public System.IntPtr regionBeingDrawn() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.regionBeingDrawn( Handle, CachedSelectors.regionBeingDrawn, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void release() {
			RuntimeObject ___occuredException;
			NativeMethods.release( Handle, CachedSelectors.release, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void removeAllAnimations() {
			RuntimeObject ___occuredException;
			NativeMethods.removeAllAnimations( Handle, CachedSelectors.removeAllAnimations, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void removeAnimationForKey_( string key ) {
			RuntimeObject ___occuredException;
			var ___wrappedkey = Runtime.CreateStringProxy( key );
			NativeMethods.removeAnimationForKey_( Handle, CachedSelectors.removeAnimationForKey_, out ___occuredException, sizeof( IntPtr ), ___wrappedkey );
			Runtime.ReleaseNativeObject( ___wrappedkey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void removeFromSuperlayer() {
			RuntimeObject ___occuredException;
			NativeMethods.removeFromSuperlayer( Handle, CachedSelectors.removeFromSuperlayer, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void renderInContext_( IntPtr context ) {
			RuntimeObject ___occuredException;
			NativeMethods.renderInContext_( Handle, CachedSelectors.renderInContext_, out ___occuredException, sizeof( IntPtr ), context );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public float repeatCount() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.repeatCount( Handle, CachedSelectors.repeatCount, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public double repeatDuration() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.repeatDuration( Handle, CachedSelectors.repeatDuration, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void replaceSublayer_with_( CALayer sublayer, CALayer with ) {
			RuntimeObject ___occuredException;
			NativeMethods.replaceSublayer_with_( Handle, CachedSelectors.replaceSublayer_with_, out ___occuredException, sizeof( CALayer ) + sizeof( CALayer ), sublayer, with );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void resizeSublayersWithOldSize_( CGSize size ) {
			RuntimeObject ___occuredException;
			NativeMethods.resizeSublayersWithOldSize_( Handle, CachedSelectors.resizeSublayersWithOldSize_, out ___occuredException, sizeof( CGSize ), size );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void resizeWithOldSuperlayerSize_( CGSize size ) {
			RuntimeObject ___occuredException;
			NativeMethods.resizeWithOldSuperlayerSize_( Handle, CachedSelectors.resizeWithOldSuperlayerSize_, out ___occuredException, sizeof( CGSize ), size );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void scrollPoint_( CGPoint point ) {
			RuntimeObject ___occuredException;
			NativeMethods.scrollPoint_( Handle, CachedSelectors.scrollPoint_, out ___occuredException, sizeof( CGPoint ), point );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void scrollRectToVisible_( CGRect visible ) {
			RuntimeObject ___occuredException;
			NativeMethods.scrollRectToVisible_( Handle, CachedSelectors.scrollRectToVisible_, out ___occuredException, sizeof( CGRect ), visible );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setAffineTransform_( CGAffineTransform transform ) {
			RuntimeObject ___occuredException;
			NativeMethods.setAffineTransform_( Handle, CachedSelectors.setAffineTransform_, out ___occuredException, sizeof( CGAffineTransform ), transform );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setAutoresizingMask_( uint mask ) {
			RuntimeObject ___occuredException;
			NativeMethods.setAutoresizingMask_( Handle, CachedSelectors.setAutoresizingMask_, out ___occuredException, sizeof( uint ), mask );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setClearsContext_( char context ) {
			RuntimeObject ___occuredException;
			NativeMethods.setClearsContext_( Handle, CachedSelectors.setClearsContext_, out ___occuredException, sizeof( char ), context );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setContents_( NObjective.RuntimeObject contents ) {
			RuntimeObject ___occuredException;
			NativeMethods.setContents_( Handle, CachedSelectors.setContents_, out ___occuredException, sizeof( NObjective.RuntimeObject ), contents );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setContentsChanged() {
			RuntimeObject ___occuredException;
			NativeMethods.setContentsChanged( Handle, CachedSelectors.setContentsChanged, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setContentsGravity_( NObjective.RuntimeObject gravity ) {
			RuntimeObject ___occuredException;
			NativeMethods.setContentsGravity_( Handle, CachedSelectors.setContentsGravity_, out ___occuredException, sizeof( NObjective.RuntimeObject ), gravity );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setDelegate_( NObjective.RuntimeObject @delegate ) {
			RuntimeObject ___occuredException;
			NativeMethods.setDelegate_( Handle, CachedSelectors.setDelegate_, out ___occuredException, sizeof( NObjective.RuntimeObject ), @delegate );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setEdgeAntialiasingMask_( uint mask ) {
			RuntimeObject ___occuredException;
			NativeMethods.setEdgeAntialiasingMask_( Handle, CachedSelectors.setEdgeAntialiasingMask_, out ___occuredException, sizeof( uint ), mask );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setHidden_( char hidden ) {
			RuntimeObject ___occuredException;
			NativeMethods.setHidden_( Handle, CachedSelectors.setHidden_, out ___occuredException, sizeof( char ), hidden );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setMask_( NObjective.RuntimeObject mask ) {
			RuntimeObject ___occuredException;
			NativeMethods.setMask_( Handle, CachedSelectors.setMask_, out ___occuredException, sizeof( NObjective.RuntimeObject ), mask );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setMasksToBounds_( char bounds ) {
			RuntimeObject ___occuredException;
			NativeMethods.setMasksToBounds_( Handle, CachedSelectors.setMasksToBounds_, out ___occuredException, sizeof( char ), bounds );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setNearClippingDepth_( float depth ) {
			RuntimeObject ___occuredException;
			NativeMethods.setNearClippingDepth_( Handle, CachedSelectors.setNearClippingDepth_, out ___occuredException, sizeof( float ), depth );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setNeedsDisplay() {
			RuntimeObject ___occuredException;
			NativeMethods.setNeedsDisplay( Handle, CachedSelectors.setNeedsDisplay, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setNeedsDisplayInRect_( CGRect rect ) {
			RuntimeObject ___occuredException;
			NativeMethods.setNeedsDisplayInRect_( Handle, CachedSelectors.setNeedsDisplayInRect_, out ___occuredException, sizeof( CGRect ), rect );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setNeedsDisplayOnBoundsChange_( char change ) {
			RuntimeObject ___occuredException;
			NativeMethods.setNeedsDisplayOnBoundsChange_( Handle, CachedSelectors.setNeedsDisplayOnBoundsChange_, out ___occuredException, sizeof( char ), change );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setNeedsLayout() {
			RuntimeObject ___occuredException;
			NativeMethods.setNeedsLayout( Handle, CachedSelectors.setNeedsLayout, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setOpaque_( char opaque ) {
			RuntimeObject ___occuredException;
			NativeMethods.setOpaque_( Handle, CachedSelectors.setOpaque_, out ___occuredException, sizeof( char ), opaque );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSortsSublayers_( char sublayers ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSortsSublayers_( Handle, CachedSelectors.setSortsSublayers_, out ___occuredException, sizeof( char ), sublayers );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSublayers_( NObjective.RuntimeObject sublayers ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSublayers_( Handle, CachedSelectors.setSublayers_, out ___occuredException, sizeof( NObjective.RuntimeObject ), sublayers );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setValue_forKey_( NObjective.RuntimeObject value, NObjective.RuntimeObject forKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forKey_( Handle, CachedSelectors.setValue_forKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setValue_forKeyPath_( NObjective.RuntimeObject value, NObjective.RuntimeObject forKeyPath ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forKeyPath_( Handle, CachedSelectors.setValue_forKeyPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forKeyPath );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setValue_forUndefinedKey_( NObjective.RuntimeObject value, NObjective.RuntimeObject forUndefinedKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forUndefinedKey_( Handle, CachedSelectors.setValue_forUndefinedKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forUndefinedKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public float shadowOpacity() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.shadowOpacity( Handle, CachedSelectors.shadowOpacity, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float shadowRadius() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.shadowRadius( Handle, CachedSelectors.shadowRadius, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool shouldArchiveValueForKey_( string key ) {
			RuntimeObject ___occuredException;
			var ___wrappedkey = Runtime.CreateStringProxy( key );
			var ___result = NativeMethods.shouldArchiveValueForKey_( Handle, CachedSelectors.shouldArchiveValueForKey_, out ___occuredException, sizeof( IntPtr ), ___wrappedkey );
			Runtime.ReleaseNativeObject( ___wrappedkey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public char sortsSublayers() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.sortsSublayers( Handle, CachedSelectors.sortsSublayers, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float speed() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.speed( Handle, CachedSelectors.speed, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject sublayerEnumerator() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.sublayerEnumerator( Handle, CachedSelectors.sublayerEnumerator, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject sublayers() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.sublayers( Handle, CachedSelectors.sublayers, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject superlayer() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.superlayer( Handle, CachedSelectors.superlayer, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public double timeOffset() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.timeOffset( Handle, CachedSelectors.timeOffset, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject valueForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForKey_( Handle, CachedSelectors.valueForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject valueForKeyPath_( NObjective.RuntimeObject path ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForKeyPath_( Handle, CachedSelectors.valueForKeyPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ), path );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject valueForUndefinedKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForUndefinedKey_( Handle, CachedSelectors.valueForUndefinedKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public float zPosition() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.zPosition( Handle, CachedSelectors.zPosition, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		public struct ObjectiveCPropertyImplementation {
			public uint autoresizingMask {
				get { return _handle.autoresizingMask(); }
			}
			public char autoreverses {
				get { return _handle.autoreverses(); }
			}
			public NObjective.RuntimeObject backgroundFilters {
				get { return _handle.backgroundFilters(); }
			}
			public double beginTime {
				get { return _handle.beginTime(); }
			}
			public float borderWidth {
				get { return _handle.borderWidth(); }
			}
			public char clearsContext {
				get { return _handle.clearsContext(); }
			}
			public NObjective.RuntimeObject compositingFilter {
				get { return _handle.compositingFilter(); }
			}
			public NObjective.RuntimeObject contents {
				get { return _handle.contents(); }
			}
			public NObjective.RuntimeObject contentsGravity {
				get { return _handle.contentsGravity(); }
			}
			public float cornerRadius {
				get { return _handle.cornerRadius(); }
			}
			public NObjective.RuntimeObject @delegate {
				get { return _handle.@delegate(); }
			}
			public double duration {
				get { return _handle.duration(); }
			}
			public uint edgeAntialiasingMask {
				get { return _handle.edgeAntialiasingMask(); }
			}
			public NObjective.RuntimeObject fillMode {
				get { return _handle.fillMode(); }
			}
			public NObjective.RuntimeObject filters {
				get { return _handle.filters(); }
			}
			public bool hidden {
				get { return _handle.isHidden(); }
			}
			public NObjective.RuntimeObject layoutManager {
				get { return _handle.layoutManager(); }
			}
			public NObjective.RuntimeObject magnificationFilter {
				get { return _handle.magnificationFilter(); }
			}
			public NObjective.RuntimeObject mask {
				get { return _handle.mask(); }
			}
			public char masksToBounds {
				get { return _handle.masksToBounds(); }
			}
			public NObjective.RuntimeObject minificationFilter {
				get { return _handle.minificationFilter(); }
			}
			public float minificationFilterBias {
				get { return _handle.minificationFilterBias(); }
			}
			public NObjective.RuntimeObject name {
				get { return _handle.name(); }
			}
			public char needsDisplayOnBoundsChange {
				get { return _handle.needsDisplayOnBoundsChange(); }
			}
			public float opacity {
				get { return _handle.opacity(); }
			}
			public bool opaque {
				get { return _handle.isOpaque(); }
			}
			public float repeatCount {
				get { return _handle.repeatCount(); }
			}
			public double repeatDuration {
				get { return _handle.repeatDuration(); }
			}
			public float shadowOpacity {
				get { return _handle.shadowOpacity(); }
			}
			public float shadowRadius {
				get { return _handle.shadowRadius(); }
			}
			public char sortsSublayers {
				get { return _handle.sortsSublayers(); }
			}
			public float speed {
				get { return _handle.speed(); }
			}
			public NObjective.RuntimeObject sublayers {
				get { return _handle.sublayers(); }
			}
			public NObjective.RuntimeObject superlayer {
				get { return _handle.superlayer(); }
			}
			public double timeOffset {
				get { return _handle.timeOffset(); }
			}
			public float zPosition {
				get { return _handle.zPosition(); }
			}
			private readonly CALayer _handle;
			public ObjectiveCPropertyImplementation( CALayer value ) {
				_handle = value;
			}
		}
		public ObjectiveCPropertyImplementation Properties {
			get { return new ObjectiveCPropertyImplementation( this ); }
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr actionForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void addAnimation_forKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CAAnimation animation, IntPtr forKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void addConstraint_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CAConstraint constraint );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void addSublayer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CALayer sublayer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_stret_eh2" )]
			public static extern void affineTransform( out CGAffineTransform ___structAddress, int ___structSize, RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr ancestorSharedWithLayer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject layer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr animationForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr attributesForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr attributesForKeyPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject path );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char automaticallyNotifiesObserversForKey_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern uint autoresizingMask( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char autoreverses( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr backgroundFilters( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern double beginTime( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float borderWidth( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char CAML_supportedClass( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char clearsContext( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr compositingFilter( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool containsPoint_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGPoint point );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr contents( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr contentsGravity( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_stret_eh2" )]
			public static extern void convertPoint_fromLayer_( out CGPoint ___structAddress, int ___structSize, RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGPoint point, CALayer fromLayer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_stret_eh2" )]
			public static extern void convertPoint_toLayer_( out CGPoint ___structAddress, int ___structSize, RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGPoint point, CALayer toLayer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_stret_eh2" )]
			public static extern void convertRect_fromLayer_( out CGRect ___structAddress, int ___structSize, RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGRect rect, CALayer fromLayer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_stret_eh2" )]
			public static extern void convertRect_toLayer_( out CGRect ___structAddress, int ___structSize, RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGRect rect, CALayer toLayer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern double convertTime_fromLayer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, double time, CALayer fromLayer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern double convertTime_toLayer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, double time, CALayer toLayer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float cornerRadius( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr defaultActionForKey_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr defaultValueForKey_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr @delegate( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void display( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void displayIfNeeded( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char doubleSided( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void drawInContext_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr context );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern double duration( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern uint edgeAntialiasingMask( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSCoder coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr fillMode( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filters( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char floating( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char hidden( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr hitTest_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGPoint test );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void initialize( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithLayer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject layer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void insertSublayer_above_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CALayer sublayer, CALayer above );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void insertSublayer_atIndex_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CALayer sublayer, uint atIndex );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void insertSublayer_below_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CALayer sublayer, CALayer below );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void invalidateContents( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isDescendantOf_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject of );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isHidden( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isOpaque( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr layer( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr layerBeingDrawn( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void layerDidBecomeVisible_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, char visible );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void layoutIfNeeded( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr layoutManager( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void layoutSublayers( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr magnificationFilter( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr mask( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char masksToBounds( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr minificationFilter( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float minificationFilterBias( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr modelLayer( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr name( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float nearClippingDepth( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char needsDisplay( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char needsDisplayOnBoundsChange( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char needsLayout( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float opacity( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char opaque( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_stret_eh2" )]
			public static extern void preferredFrameSize( out CGSize ___structAddress, int ___structSize, RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr presentationLayer( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr properties( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern System.IntPtr regionBeingDrawn( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void release( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void removeAllAnimations( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void removeAnimationForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void removeFromSuperlayer( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void renderInContext_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr context );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float repeatCount( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern double repeatDuration( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void replaceSublayer_with_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CALayer sublayer, CALayer with );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void resizeSublayersWithOldSize_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGSize size );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void resizeWithOldSuperlayerSize_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGSize size );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void scrollPoint_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGPoint point );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void scrollRectToVisible_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGRect visible );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setAffineTransform_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGAffineTransform transform );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setAutoresizingMask_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, uint mask );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setClearsContext_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, char context );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setContents_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject contents );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setContentsChanged( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setContentsGravity_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject gravity );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setDelegate_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @delegate );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setEdgeAntialiasingMask_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, uint mask );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setHidden_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, char hidden );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setMask_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject mask );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setMasksToBounds_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, char bounds );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setNearClippingDepth_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float depth );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setNeedsDisplay( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setNeedsDisplayInRect_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGRect rect );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setNeedsDisplayOnBoundsChange_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, char change );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setNeedsLayout( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setOpaque_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, char opaque );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSortsSublayers_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, char sublayers );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSublayers_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject sublayers );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forKeyPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forKeyPath );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forUndefinedKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forUndefinedKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float shadowOpacity( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float shadowRadius( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool shouldArchiveValueForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char sortsSublayers( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float speed( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr sublayerEnumerator( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr sublayers( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr superlayer( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern double timeOffset( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForKeyPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject path );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForUndefinedKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float zPosition( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector actionForKey_ = "actionForKey:";
			public static readonly Selector addAnimation_forKey_ = "addAnimation:forKey:";
			public static readonly Selector addConstraint_ = "addConstraint:";
			public static readonly Selector addSublayer_ = "addSublayer:";
			public static readonly Selector affineTransform = "affineTransform";
			public static readonly Selector ancestorSharedWithLayer_ = "ancestorSharedWithLayer:";
			public static readonly Selector animationForKey_ = "animationForKey:";
			public static readonly Selector attributesForKey_ = "attributesForKey:";
			public static readonly Selector attributesForKeyPath_ = "attributesForKeyPath:";
			public static readonly Selector automaticallyNotifiesObserversForKey_ = "automaticallyNotifiesObserversForKey:";
			public static readonly Selector autoresizingMask = "autoresizingMask";
			public static readonly Selector autoreverses = "autoreverses";
			public static readonly Selector backgroundFilters = "backgroundFilters";
			public static readonly Selector beginTime = "beginTime";
			public static readonly Selector borderWidth = "borderWidth";
			public static readonly Selector CAML_supportedClass = "CAML_supportedClass";
			public static readonly Selector clearsContext = "clearsContext";
			public static readonly Selector compositingFilter = "compositingFilter";
			public static readonly Selector containsPoint_ = "containsPoint:";
			public static readonly Selector contents = "contents";
			public static readonly Selector contentsGravity = "contentsGravity";
			public static readonly Selector convertPoint_fromLayer_ = "convertPoint:fromLayer:";
			public static readonly Selector convertPoint_toLayer_ = "convertPoint:toLayer:";
			public static readonly Selector convertRect_fromLayer_ = "convertRect:fromLayer:";
			public static readonly Selector convertRect_toLayer_ = "convertRect:toLayer:";
			public static readonly Selector convertTime_fromLayer_ = "convertTime:fromLayer:";
			public static readonly Selector convertTime_toLayer_ = "convertTime:toLayer:";
			public static readonly Selector cornerRadius = "cornerRadius";
			public static readonly Selector defaultActionForKey_ = "defaultActionForKey:";
			public static readonly Selector defaultValueForKey_ = "defaultValueForKey:";
			public static readonly Selector @delegate = "delegate";
			public static readonly Selector display = "display";
			public static readonly Selector displayIfNeeded = "displayIfNeeded";
			public static readonly Selector doubleSided = "doubleSided";
			public static readonly Selector drawInContext_ = "drawInContext:";
			public static readonly Selector duration = "duration";
			public static readonly Selector edgeAntialiasingMask = "edgeAntialiasingMask";
			public static readonly Selector encodeWithCoder_ = "encodeWithCoder:";
			public static readonly Selector fillMode = "fillMode";
			public static readonly Selector filters = "filters";
			public static readonly Selector floating = "floating";
			public static readonly Selector hidden = "hidden";
			public static readonly Selector hitTest_ = "hitTest:";
			public static readonly Selector initialize = "initialize";
			public static readonly Selector initWithCoder_ = "initWithCoder:";
			public static readonly Selector initWithLayer_ = "initWithLayer:";
			public static readonly Selector insertSublayer_above_ = "insertSublayer:above:";
			public static readonly Selector insertSublayer_atIndex_ = "insertSublayer:atIndex:";
			public static readonly Selector insertSublayer_below_ = "insertSublayer:below:";
			public static readonly Selector invalidateContents = "invalidateContents";
			public static readonly Selector isDescendantOf_ = "isDescendantOf:";
			public static readonly Selector isHidden = "isHidden";
			public static readonly Selector isOpaque = "isOpaque";
			public static readonly Selector layer = "layer";
			public static readonly Selector layerBeingDrawn = "layerBeingDrawn";
			public static readonly Selector layerDidBecomeVisible_ = "layerDidBecomeVisible:";
			public static readonly Selector layoutIfNeeded = "layoutIfNeeded";
			public static readonly Selector layoutManager = "layoutManager";
			public static readonly Selector layoutSublayers = "layoutSublayers";
			public static readonly Selector magnificationFilter = "magnificationFilter";
			public static readonly Selector mask = "mask";
			public static readonly Selector masksToBounds = "masksToBounds";
			public static readonly Selector minificationFilter = "minificationFilter";
			public static readonly Selector minificationFilterBias = "minificationFilterBias";
			public static readonly Selector modelLayer = "modelLayer";
			public static readonly Selector name = "name";
			public static readonly Selector nearClippingDepth = "nearClippingDepth";
			public static readonly Selector needsDisplay = "needsDisplay";
			public static readonly Selector needsDisplayOnBoundsChange = "needsDisplayOnBoundsChange";
			public static readonly Selector needsLayout = "needsLayout";
			public static readonly Selector opacity = "opacity";
			public static readonly Selector opaque = "opaque";
			public static readonly Selector preferredFrameSize = "preferredFrameSize";
			public static readonly Selector presentationLayer = "presentationLayer";
			public static readonly Selector properties = "properties";
			public static readonly Selector regionBeingDrawn = "regionBeingDrawn";
			public static readonly Selector release = "release";
			public static readonly Selector removeAllAnimations = "removeAllAnimations";
			public static readonly Selector removeAnimationForKey_ = "removeAnimationForKey:";
			public static readonly Selector removeFromSuperlayer = "removeFromSuperlayer";
			public static readonly Selector renderInContext_ = "renderInContext:";
			public static readonly Selector repeatCount = "repeatCount";
			public static readonly Selector repeatDuration = "repeatDuration";
			public static readonly Selector replaceSublayer_with_ = "replaceSublayer:with:";
			public static readonly Selector resizeSublayersWithOldSize_ = "resizeSublayersWithOldSize:";
			public static readonly Selector resizeWithOldSuperlayerSize_ = "resizeWithOldSuperlayerSize:";
			public static readonly Selector scrollPoint_ = "scrollPoint:";
			public static readonly Selector scrollRectToVisible_ = "scrollRectToVisible:";
			public static readonly Selector setAffineTransform_ = "setAffineTransform:";
			public static readonly Selector setAutoresizingMask_ = "setAutoresizingMask:";
			public static readonly Selector setClearsContext_ = "setClearsContext:";
			public static readonly Selector setContents_ = "setContents:";
			public static readonly Selector setContentsChanged = "setContentsChanged";
			public static readonly Selector setContentsGravity_ = "setContentsGravity:";
			public static readonly Selector setDelegate_ = "setDelegate:";
			public static readonly Selector setEdgeAntialiasingMask_ = "setEdgeAntialiasingMask:";
			public static readonly Selector setHidden_ = "setHidden:";
			public static readonly Selector setMask_ = "setMask:";
			public static readonly Selector setMasksToBounds_ = "setMasksToBounds:";
			public static readonly Selector setNearClippingDepth_ = "setNearClippingDepth:";
			public static readonly Selector setNeedsDisplay = "setNeedsDisplay";
			public static readonly Selector setNeedsDisplayInRect_ = "setNeedsDisplayInRect:";
			public static readonly Selector setNeedsDisplayOnBoundsChange_ = "setNeedsDisplayOnBoundsChange:";
			public static readonly Selector setNeedsLayout = "setNeedsLayout";
			public static readonly Selector setOpaque_ = "setOpaque:";
			public static readonly Selector setSortsSublayers_ = "setSortsSublayers:";
			public static readonly Selector setSublayers_ = "setSublayers:";
			public static readonly Selector setValue_forKey_ = "setValue:forKey:";
			public static readonly Selector setValue_forKeyPath_ = "setValue:forKeyPath:";
			public static readonly Selector setValue_forUndefinedKey_ = "setValue:forUndefinedKey:";
			public static readonly Selector shadowOpacity = "shadowOpacity";
			public static readonly Selector shadowRadius = "shadowRadius";
			public static readonly Selector shouldArchiveValueForKey_ = "shouldArchiveValueForKey:";
			public static readonly Selector sortsSublayers = "sortsSublayers";
			public static readonly Selector speed = "speed";
			public static readonly Selector sublayerEnumerator = "sublayerEnumerator";
			public static readonly Selector sublayers = "sublayers";
			public static readonly Selector superlayer = "superlayer";
			public static readonly Selector timeOffset = "timeOffset";
			public static readonly Selector valueForKey_ = "valueForKey:";
			public static readonly Selector valueForKeyPath_ = "valueForKeyPath:";
			public static readonly Selector valueForUndefinedKey_ = "valueForUndefinedKey:";
			public static readonly Selector zPosition = "zPosition";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAMediaTimingFunction : IEquatable<CAMediaTimingFunction> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAMediaTimingFunction;
		public static implicit operator NSObject( CAMediaTimingFunction value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAMediaTimingFunction value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAMediaTimingFunction value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAMediaTimingFunction?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAMediaTimingFunction value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAMediaTimingFunction value1, CAMediaTimingFunction value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAMediaTimingFunction value1, CAMediaTimingFunction value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAMediaTimingFunction( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAMediaTimingFunction alloc() {
			return new CAMediaTimingFunction( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject functionWithControlPoints____( float points, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.functionWithControlPoints____( ClassHandle, CachedSelectors.functionWithControlPoints____, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), points, unnamedParameter, unnamedParameter2, unnamedParameter3 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject functionWithName_( string name ) {
			RuntimeObject ___occuredException;
			var ___wrappedname = Runtime.CreateStringProxy( name );
			var ___result = NativeMethods.functionWithName_( ClassHandle, CachedSelectors.functionWithName_, out ___occuredException, sizeof( IntPtr ), ___wrappedname );
			Runtime.ReleaseNativeObject( ___wrappedname );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void encodeWithCoder_( NSCoder coder ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeWithCoder_( Handle, CachedSelectors.encodeWithCoder_, out ___occuredException, sizeof( NSCoder ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject initWithCoder_( NObjective.RuntimeObject coder ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCoder_( Handle, CachedSelectors.initWithCoder_, out ___occuredException, sizeof( NObjective.RuntimeObject ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithControlPoints____( float points, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithControlPoints____( Handle, CachedSelectors.initWithControlPoints____, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), points, unnamedParameter, unnamedParameter2, unnamedParameter3 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSCoder coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr functionWithControlPoints____( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float points, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr functionWithName_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithControlPoints____( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float points, float unnamedParameter, float unnamedParameter2, float unnamedParameter3 );
		}
		static internal class CachedSelectors {
			public static readonly Selector encodeWithCoder_ = "encodeWithCoder:";
			public static readonly Selector functionWithControlPoints____ = "functionWithControlPoints::::";
			public static readonly Selector functionWithName_ = "functionWithName:";
			public static readonly Selector initWithCoder_ = "initWithCoder:";
			public static readonly Selector initWithControlPoints____ = "initWithControlPoints::::";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAMLParser : IEquatable<CAMLParser> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAMLParser;
		public static implicit operator NSObject( CAMLParser value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAMLParser value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAMLParser value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAMLParser?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAMLParser value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAMLParser value1, CAMLParser value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAMLParser value1, CAMLParser value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAMLParser( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAMLParser alloc() {
			return new CAMLParser( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject __parseContentsOfURL_( NObjective.RuntimeObject url ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.__parseContentsOfURL_( ClassHandle, CachedSelectors.__parseContentsOfURL_, out ___occuredException, sizeof( NObjective.RuntimeObject ), url );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject parser() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.parser( ClassHandle, CachedSelectors.parser, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject baseURL() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.baseURL( Handle, CachedSelectors.baseURL, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject error() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.error( Handle, CachedSelectors.error, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject objectById_( NObjective.RuntimeObject id ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.objectById_( Handle, CachedSelectors.objectById_, out ___occuredException, sizeof( NObjective.RuntimeObject ), id );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public bool parseContentsOfURL_( NObjective.RuntimeObject url ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.parseContentsOfURL_( Handle, CachedSelectors.parseContentsOfURL_, out ___occuredException, sizeof( NObjective.RuntimeObject ), url );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool parseData_( NObjective.RuntimeObject data ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.parseData_( Handle, CachedSelectors.parseData_, out ___occuredException, sizeof( NObjective.RuntimeObject ), data );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool parseString_( NObjective.RuntimeObject @string ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.parseString_( Handle, CachedSelectors.parseString_, out ___occuredException, sizeof( NObjective.RuntimeObject ), @string );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void raiseErrorWithFormat_( NObjective.RuntimeObject format ) {
			RuntimeObject ___occuredException;
			NativeMethods.raiseErrorWithFormat_( Handle, CachedSelectors.raiseErrorWithFormat_, out ___occuredException, sizeof( NObjective.RuntimeObject ), format );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject result() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.result( Handle, CachedSelectors.result, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void setBaseURL_( NObjective.RuntimeObject url ) {
			RuntimeObject ___occuredException;
			NativeMethods.setBaseURL_( Handle, CachedSelectors.setBaseURL_, out ___occuredException, sizeof( NObjective.RuntimeObject ), url );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setValue_forUndefinedKey_( NObjective.RuntimeObject value, NObjective.RuntimeObject forUndefinedKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forUndefinedKey_( Handle, CachedSelectors.setValue_forUndefinedKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forUndefinedKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject valueForUndefinedKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForUndefinedKey_( Handle, CachedSelectors.valueForUndefinedKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		public struct ObjectiveCPropertyImplementation {
			public NObjective.RuntimeObject baseURL {
				get { return _handle.baseURL(); }
			}
			public NObjective.RuntimeObject error {
				get { return _handle.error(); }
			}
			public NObjective.RuntimeObject result {
				get { return _handle.result(); }
			}
			private readonly CAMLParser _handle;
			public ObjectiveCPropertyImplementation( CAMLParser value ) {
				_handle = value;
			}
		}
		public ObjectiveCPropertyImplementation Properties {
			get { return new ObjectiveCPropertyImplementation( this ); }
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr __parseContentsOfURL_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject url );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr baseURL( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr error( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr objectById_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject id );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool parseContentsOfURL_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject url );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool parseData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject data );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr parser( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool parseString_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @string );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void raiseErrorWithFormat_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject format );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr result( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setBaseURL_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject url );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forUndefinedKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forUndefinedKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForUndefinedKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
		}
		static internal class CachedSelectors {
			public static readonly Selector __parseContentsOfURL_ = "__parseContentsOfURL:";
			public static readonly Selector baseURL = "baseURL";
			public static readonly Selector error = "error";
			public static readonly Selector objectById_ = "objectById:";
			public static readonly Selector parseContentsOfURL_ = "parseContentsOfURL:";
			public static readonly Selector parseData_ = "parseData:";
			public static readonly Selector parser = "parser";
			public static readonly Selector parseString_ = "parseString:";
			public static readonly Selector raiseErrorWithFormat_ = "raiseErrorWithFormat:";
			public static readonly Selector result = "result";
			public static readonly Selector setBaseURL_ = "setBaseURL:";
			public static readonly Selector setValue_forUndefinedKey_ = "setValue:forUndefinedKey:";
			public static readonly Selector valueForUndefinedKey_ = "valueForUndefinedKey:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CALayer ) )]
	public struct CAOpenGLLayer : IEquatable<CAOpenGLLayer> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAOpenGLLayer;
		public static implicit operator CALayer( CAOpenGLLayer value ) {
			return new CALayer( value.Handle );
		}
		public static implicit operator NSObject( CAOpenGLLayer value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAOpenGLLayer value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAOpenGLLayer value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAOpenGLLayer?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAOpenGLLayer value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAOpenGLLayer value1, CAOpenGLLayer value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAOpenGLLayer value1, CAOpenGLLayer value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAOpenGLLayer( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAOpenGLLayer alloc() {
			return new CAOpenGLLayer( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static bool shouldRenderOnBackgroundThread() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.shouldRenderOnBackgroundThread( ClassHandle, CachedSelectors.shouldRenderOnBackgroundThread, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public char asynchronous() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.asynchronous( Handle, CachedSelectors.asynchronous, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool canDrawInCGLContext_pixelFormat_forLayerTime_displayTime_( IntPtr context, IntPtr pixelFormat, double forLayerTime, CVTimeStamp[] displayTime ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.canDrawInCGLContext_pixelFormat_forLayerTime_displayTime_( Handle, CachedSelectors.canDrawInCGLContext_pixelFormat_forLayerTime_displayTime_, out ___occuredException, sizeof( IntPtr ) + sizeof( IntPtr ) + sizeof( double ) + sizeof( IntPtr ), context, pixelFormat, forLayerTime, displayTime );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void didChangeValueForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			NativeMethods.didChangeValueForKey_( Handle, CachedSelectors.didChangeValueForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void drawInCGLContext_pixelFormat_forLayerTime_displayTime_( IntPtr context, IntPtr pixelFormat, double forLayerTime, CVTimeStamp[] displayTime ) {
			RuntimeObject ___occuredException;
			NativeMethods.drawInCGLContext_pixelFormat_forLayerTime_displayTime_( Handle, CachedSelectors.drawInCGLContext_pixelFormat_forLayerTime_displayTime_, out ___occuredException, sizeof( IntPtr ) + sizeof( IntPtr ) + sizeof( double ) + sizeof( IntPtr ), context, pixelFormat, forLayerTime, displayTime );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void releaseCGLContext_( IntPtr context ) {
			RuntimeObject ___occuredException;
			NativeMethods.releaseCGLContext_( Handle, CachedSelectors.releaseCGLContext_, out ___occuredException, sizeof( IntPtr ), context );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void releaseCGLPixelFormat_( IntPtr format ) {
			RuntimeObject ___occuredException;
			NativeMethods.releaseCGLPixelFormat_( Handle, CachedSelectors.releaseCGLPixelFormat_, out ___occuredException, sizeof( IntPtr ), format );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char asynchronous( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool canDrawInCGLContext_pixelFormat_forLayerTime_displayTime_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr context, IntPtr pixelFormat, double forLayerTime, CVTimeStamp[] displayTime );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void didChangeValueForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void drawInCGLContext_pixelFormat_forLayerTime_displayTime_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr context, IntPtr pixelFormat, double forLayerTime, CVTimeStamp[] displayTime );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void releaseCGLContext_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr context );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void releaseCGLPixelFormat_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr format );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool shouldRenderOnBackgroundThread( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector asynchronous = "asynchronous";
			public static readonly Selector canDrawInCGLContext_pixelFormat_forLayerTime_displayTime_ = "canDrawInCGLContext:pixelFormat:forLayerTime:displayTime:";
			public static readonly Selector didChangeValueForKey_ = "didChangeValueForKey:";
			public static readonly Selector drawInCGLContext_pixelFormat_forLayerTime_displayTime_ = "drawInCGLContext:pixelFormat:forLayerTime:displayTime:";
			public static readonly Selector releaseCGLContext_ = "releaseCGLContext:";
			public static readonly Selector releaseCGLPixelFormat_ = "releaseCGLPixelFormat:";
			public static readonly Selector shouldRenderOnBackgroundThread = "shouldRenderOnBackgroundThread";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CALayer ) )]
	public struct CAPDFLayer : IEquatable<CAPDFLayer> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAPDFLayer;
		public static implicit operator CALayer( CAPDFLayer value ) {
			return new CALayer( value.Handle );
		}
		public static implicit operator NSObject( CAPDFLayer value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAPDFLayer value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAPDFLayer value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAPDFLayer?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAPDFLayer value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAPDFLayer value1, CAPDFLayer value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAPDFLayer value1, CAPDFLayer value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAPDFLayer( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAPDFLayer alloc() {
			return new CAPDFLayer( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public void didChangeValueForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			NativeMethods.didChangeValueForKey_( Handle, CachedSelectors.didChangeValueForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void didChangeValueForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
		}
		static internal class CachedSelectors {
			public static readonly Selector didChangeValueForKey_ = "didChangeValueForKey:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CAAnimation ) )]
	public struct CAPropertyAnimation : IEquatable<CAPropertyAnimation> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAPropertyAnimation;
		public static implicit operator CAAnimation( CAPropertyAnimation value ) {
			return new CAAnimation( value.Handle );
		}
		public static implicit operator NSObject( CAPropertyAnimation value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAPropertyAnimation value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAPropertyAnimation value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAPropertyAnimation?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAPropertyAnimation value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAPropertyAnimation value1, CAPropertyAnimation value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAPropertyAnimation value1, CAPropertyAnimation value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAPropertyAnimation( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAPropertyAnimation alloc() {
			return new CAPropertyAnimation( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject animationWithKeyPath_( string path ) {
			RuntimeObject ___occuredException;
			var ___wrappedpath = Runtime.CreateStringProxy( path );
			var ___result = NativeMethods.animationWithKeyPath_( ClassHandle, CachedSelectors.animationWithKeyPath_, out ___occuredException, sizeof( IntPtr ), ___wrappedpath );
			Runtime.ReleaseNativeObject( ___wrappedpath );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public char additive() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.additive( Handle, CachedSelectors.additive, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public char cumulative() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.cumulative( Handle, CachedSelectors.cumulative, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool isAdditive() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isAdditive( Handle, CachedSelectors.isAdditive, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool isCumulative() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isCumulative( Handle, CachedSelectors.isCumulative, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject keyPath() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.keyPath( Handle, CachedSelectors.keyPath, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		public struct ObjectiveCPropertyImplementation {
			public bool additive {
				get { return _handle.isAdditive(); }
			}
			public bool cumulative {
				get { return _handle.isCumulative(); }
			}
			public NObjective.RuntimeObject keyPath {
				get { return _handle.keyPath(); }
			}
			private readonly CAPropertyAnimation _handle;
			public ObjectiveCPropertyImplementation( CAPropertyAnimation value ) {
				_handle = value;
			}
		}
		public ObjectiveCPropertyImplementation Properties {
			get { return new ObjectiveCPropertyImplementation( this ); }
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char additive( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr animationWithKeyPath_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr path );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char cumulative( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isAdditive( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isCumulative( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr keyPath( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector additive = "additive";
			public static readonly Selector animationWithKeyPath_ = "animationWithKeyPath:";
			public static readonly Selector cumulative = "cumulative";
			public static readonly Selector isAdditive = "isAdditive";
			public static readonly Selector isCumulative = "isCumulative";
			public static readonly Selector keyPath = "keyPath";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CARenderer : IEquatable<CARenderer> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CARenderer;
		public static implicit operator NSObject( CARenderer value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CARenderer value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CARenderer value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CARenderer?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CARenderer value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CARenderer value1, CARenderer value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CARenderer value1, CARenderer value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CARenderer( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CARenderer alloc() {
			return new CARenderer( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static CARenderer rendererWithCGLContext_options_( IntPtr context, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.rendererWithCGLContext_options_( ClassHandle, CachedSelectors.rendererWithCGLContext_options_, out ___occuredException, sizeof( IntPtr ) + sizeof( NSDictionary ), context, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CARenderer( ___result );
		}
		unsafe public void addUpdateRect_( CGRect rect ) {
			RuntimeObject ___occuredException;
			NativeMethods.addUpdateRect_( Handle, CachedSelectors.addUpdateRect_, out ___occuredException, sizeof( CGRect ), rect );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void beginFrameAtTime_timeStamp_( double time, CVTimeStamp[] timeStamp ) {
			RuntimeObject ___occuredException;
			NativeMethods.beginFrameAtTime_timeStamp_( Handle, CachedSelectors.beginFrameAtTime_timeStamp_, out ___occuredException, sizeof( double ) + sizeof( IntPtr ), time, timeStamp );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void endFrame() {
			RuntimeObject ___occuredException;
			NativeMethods.endFrame( Handle, CachedSelectors.endFrame, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject layer() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.layer( Handle, CachedSelectors.layer, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public double nextFrameTime() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.nextFrameTime( Handle, CachedSelectors.nextFrameTime, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void render() {
			RuntimeObject ___occuredException;
			NativeMethods.render( Handle, CachedSelectors.render, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setLayer_( NObjective.RuntimeObject layer ) {
			RuntimeObject ___occuredException;
			NativeMethods.setLayer_( Handle, CachedSelectors.setLayer_, out ___occuredException, sizeof( NObjective.RuntimeObject ), layer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public CGRect updateBounds() {
			CGRect ___result;
			RuntimeObject ___occuredException;
			NativeMethods.updateBounds( out ___result, sizeof( CGRect ), Handle, CachedSelectors.updateBounds, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		public struct ObjectiveCPropertyImplementation {
			public NObjective.RuntimeObject layer {
				get { return _handle.layer(); }
			}
			private readonly CARenderer _handle;
			public ObjectiveCPropertyImplementation( CARenderer value ) {
				_handle = value;
			}
		}
		public ObjectiveCPropertyImplementation Properties {
			get { return new ObjectiveCPropertyImplementation( this ); }
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void addUpdateRect_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGRect rect );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void beginFrameAtTime_timeStamp_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, double time, CVTimeStamp[] timeStamp );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void endFrame( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr layer( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern double nextFrameTime( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void render( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr rendererWithCGLContext_options_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr context, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setLayer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject layer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_stret_eh2" )]
			public static extern void updateBounds( out CGRect ___structAddress, int ___structSize, RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector addUpdateRect_ = "addUpdateRect:";
			public static readonly Selector beginFrameAtTime_timeStamp_ = "beginFrameAtTime:timeStamp:";
			public static readonly Selector endFrame = "endFrame";
			public static readonly Selector layer = "layer";
			public static readonly Selector nextFrameTime = "nextFrameTime";
			public static readonly Selector render = "render";
			public static readonly Selector rendererWithCGLContext_options_ = "rendererWithCGLContext:options:";
			public static readonly Selector setLayer_ = "setLayer:";
			public static readonly Selector updateBounds = "updateBounds";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAScriptContext : IEquatable<CAScriptContext> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAScriptContext;
		public static implicit operator NSObject( CAScriptContext value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAScriptContext value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAScriptContext value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAScriptContext?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAScriptContext value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAScriptContext value1, CAScriptContext value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAScriptContext value1, CAScriptContext value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAScriptContext( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAScriptContext alloc() {
			return new CAScriptContext( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject context() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.context( ClassHandle, CachedSelectors.context, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject currentContext() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.currentContext( ClassHandle, CachedSelectors.currentContext, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject defaultClassNames() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.defaultClassNames( ClassHandle, CachedSelectors.defaultClassNames, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject copyObject_( System.IntPtr @object ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.copyObject_( Handle, CachedSelectors.copyObject_, out ___occuredException, sizeof( System.IntPtr ), @object );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public System.IntPtr evaluateString_sourceURL_line_( NObjective.RuntimeObject @string, NObjective.RuntimeObject sourceURL, uint line ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.evaluateString_sourceURL_line_( Handle, CachedSelectors.evaluateString_sourceURL_line_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( uint ), @string, sourceURL, line );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public System.IntPtr evaluateUTF8String_sourceURL_line_( System.IntPtr @string, NObjective.RuntimeObject sourceURL, uint line ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.evaluateUTF8String_sourceURL_line_( Handle, CachedSelectors.evaluateUTF8String_sourceURL_line_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( NObjective.RuntimeObject ) + sizeof( uint ), @string, sourceURL, line );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public System.IntPtr JSContext() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.JSContext( Handle, CachedSelectors.JSContext, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject objectForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.objectForKey_( Handle, CachedSelectors.objectForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void removeObjectForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			NativeMethods.removeObjectForKey_( Handle, CachedSelectors.removeObjectForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setObject_forKey_( NObjective.RuntimeObject @object, NObjective.RuntimeObject forKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setObject_forKey_( Handle, CachedSelectors.setObject_forKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), @object, forKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setValue_forUndefinedKey_( NObjective.RuntimeObject value, NObjective.RuntimeObject forUndefinedKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forUndefinedKey_( Handle, CachedSelectors.setValue_forUndefinedKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forUndefinedKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject valueForUndefinedKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForUndefinedKey_( Handle, CachedSelectors.valueForUndefinedKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr context( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr copyObject_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr @object );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr currentContext( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr defaultClassNames( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern System.IntPtr evaluateString_sourceURL_line_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @string, NObjective.RuntimeObject sourceURL, uint line );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern System.IntPtr evaluateUTF8String_sourceURL_line_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr @string, NObjective.RuntimeObject sourceURL, uint line );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern System.IntPtr JSContext( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr objectForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void removeObjectForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setObject_forKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @object, NObjective.RuntimeObject forKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forUndefinedKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forUndefinedKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForUndefinedKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
		}
		static internal class CachedSelectors {
			public static readonly Selector context = "context";
			public static readonly Selector copyObject_ = "copyObject:";
			public static readonly Selector currentContext = "currentContext";
			public static readonly Selector defaultClassNames = "defaultClassNames";
			public static readonly Selector evaluateString_sourceURL_line_ = "evaluateString:sourceURL:line:";
			public static readonly Selector evaluateUTF8String_sourceURL_line_ = "evaluateUTF8String:sourceURL:line:";
			public static readonly Selector JSContext = "JSContext";
			public static readonly Selector objectForKey_ = "objectForKey:";
			public static readonly Selector removeObjectForKey_ = "removeObjectForKey:";
			public static readonly Selector setObject_forKey_ = "setObject:forKey:";
			public static readonly Selector setValue_forUndefinedKey_ = "setValue:forUndefinedKey:";
			public static readonly Selector valueForUndefinedKey_ = "valueForUndefinedKey:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CALayer ) )]
	public struct CAScrollLayer : IEquatable<CAScrollLayer> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAScrollLayer;
		public static implicit operator CALayer( CAScrollLayer value ) {
			return new CALayer( value.Handle );
		}
		public static implicit operator NSObject( CAScrollLayer value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAScrollLayer value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAScrollLayer value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAScrollLayer?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAScrollLayer value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAScrollLayer value1, CAScrollLayer value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAScrollLayer value1, CAScrollLayer value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAScrollLayer( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAScrollLayer alloc() {
			return new CAScrollLayer( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public void scrollToPoint_( CGPoint point ) {
			RuntimeObject ___occuredException;
			NativeMethods.scrollToPoint_( Handle, CachedSelectors.scrollToPoint_, out ___occuredException, sizeof( CGPoint ), point );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void scrollToRect_( CGRect rect ) {
			RuntimeObject ___occuredException;
			NativeMethods.scrollToRect_( Handle, CachedSelectors.scrollToRect_, out ___occuredException, sizeof( CGRect ), rect );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void scrollToPoint_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGPoint point );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void scrollToRect_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGRect rect );
		}
		static internal class CachedSelectors {
			public static readonly Selector scrollToPoint_ = "scrollToPoint:";
			public static readonly Selector scrollToRect_ = "scrollToRect:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAScrollLayoutManager : IEquatable<CAScrollLayoutManager> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAScrollLayoutManager;
		public static implicit operator NSObject( CAScrollLayoutManager value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAScrollLayoutManager value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAScrollLayoutManager value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAScrollLayoutManager?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAScrollLayoutManager value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAScrollLayoutManager value1, CAScrollLayoutManager value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAScrollLayoutManager value1, CAScrollLayoutManager value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAScrollLayoutManager( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAScrollLayoutManager alloc() {
			return new CAScrollLayoutManager( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static char CAML_supportedClass() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.CAML_supportedClass( ClassHandle, CachedSelectors.CAML_supportedClass, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static NObjective.RuntimeObject layoutManager() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.layoutManager( ClassHandle, CachedSelectors.layoutManager, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void layoutSublayersOfLayer_( NObjective.RuntimeObject layer ) {
			RuntimeObject ___occuredException;
			NativeMethods.layoutSublayersOfLayer_( Handle, CachedSelectors.layoutSublayersOfLayer_, out ___occuredException, sizeof( NObjective.RuntimeObject ), layer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char CAML_supportedClass( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr layoutManager( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void layoutSublayersOfLayer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject layer );
		}
		static internal class CachedSelectors {
			public static readonly Selector CAML_supportedClass = "CAML_supportedClass";
			public static readonly Selector layoutManager = "layoutManager";
			public static readonly Selector layoutSublayersOfLayer_ = "layoutSublayersOfLayer:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CASlotProxy : IEquatable<CASlotProxy> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CASlotProxy;
		public static implicit operator NSObject( CASlotProxy value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CASlotProxy value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CASlotProxy value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CASlotProxy?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CASlotProxy value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CASlotProxy value1, CASlotProxy value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CASlotProxy value1, CASlotProxy value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CASlotProxy( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CASlotProxy alloc() {
			return new CASlotProxy( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject initWithName_( uint name ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithName_( Handle, CachedSelectors.initWithName_, out ___occuredException, sizeof( uint ), name );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithName_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, uint name );
		}
		static internal class CachedSelectors {
			public static readonly Selector initWithName_ = "initWithName:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSEnumerator ) )]
	public struct CASublayerEnumerator : IEquatable<CASublayerEnumerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CASublayerEnumerator;
		public static implicit operator NSEnumerator( CASublayerEnumerator value ) {
			return new NSEnumerator( value.Handle );
		}
		public static implicit operator NSObject( CASublayerEnumerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CASublayerEnumerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CASublayerEnumerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CASublayerEnumerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CASublayerEnumerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CASublayerEnumerator value1, CASublayerEnumerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CASublayerEnumerator value1, CASublayerEnumerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CASublayerEnumerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CASublayerEnumerator alloc() {
			return new CASublayerEnumerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject initWithLayer_( NObjective.RuntimeObject layer ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithLayer_( Handle, CachedSelectors.initWithLayer_, out ___occuredException, sizeof( NObjective.RuntimeObject ), layer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithLayer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject layer );
		}
		static internal class CachedSelectors {
			public static readonly Selector initWithLayer_ = "initWithLayer:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CATableLayoutManager : IEquatable<CATableLayoutManager> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CATableLayoutManager;
		public static implicit operator NSObject( CATableLayoutManager value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CATableLayoutManager value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CATableLayoutManager value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CATableLayoutManager?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CATableLayoutManager value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CATableLayoutManager value1, CATableLayoutManager value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CATableLayoutManager value1, CATableLayoutManager value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CATableLayoutManager( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CATableLayoutManager alloc() {
			return new CATableLayoutManager( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static char CAML_supportedClass() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.CAML_supportedClass( ClassHandle, CachedSelectors.CAML_supportedClass, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static NObjective.RuntimeObject layoutManager() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.layoutManager( ClassHandle, CachedSelectors.layoutManager, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void layoutSublayersOfLayer_( NObjective.RuntimeObject layer ) {
			RuntimeObject ___occuredException;
			NativeMethods.layoutSublayersOfLayer_( Handle, CachedSelectors.layoutSublayersOfLayer_, out ___occuredException, sizeof( NObjective.RuntimeObject ), layer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char CAML_supportedClass( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr layoutManager( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void layoutSublayersOfLayer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject layer );
		}
		static internal class CachedSelectors {
			public static readonly Selector CAML_supportedClass = "CAML_supportedClass";
			public static readonly Selector layoutManager = "layoutManager";
			public static readonly Selector layoutSublayersOfLayer_ = "layoutSublayersOfLayer:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CALayer ) )]
	public struct CATextLayer : IEquatable<CATextLayer> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CATextLayer;
		public static implicit operator CALayer( CATextLayer value ) {
			return new CALayer( value.Handle );
		}
		public static implicit operator NSObject( CATextLayer value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CATextLayer value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CATextLayer value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CATextLayer?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CATextLayer value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CATextLayer value1, CATextLayer value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CATextLayer value1, CATextLayer value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CATextLayer( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CATextLayer alloc() {
			return new CATextLayer( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public void didChangeValueForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			NativeMethods.didChangeValueForKey_( Handle, CachedSelectors.didChangeValueForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public char wrapped() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.wrapped( Handle, CachedSelectors.wrapped, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void didChangeValueForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char wrapped( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector didChangeValueForKey_ = "didChangeValueForKey:";
			public static readonly Selector wrapped = "wrapped";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CALayer ) )]
	public struct CATiledLayer : IEquatable<CATiledLayer> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CATiledLayer;
		public static implicit operator CALayer( CATiledLayer value ) {
			return new CALayer( value.Handle );
		}
		public static implicit operator NSObject( CATiledLayer value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CATiledLayer value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CATiledLayer value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CATiledLayer?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CATiledLayer value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CATiledLayer value1, CATiledLayer value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CATiledLayer value1, CATiledLayer value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CATiledLayer( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CATiledLayer alloc() {
			return new CATiledLayer( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static double fadeDuration() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.fadeDuration( ClassHandle, CachedSelectors.fadeDuration, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static bool shouldDrawOnMainThread() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.shouldDrawOnMainThread( ClassHandle, CachedSelectors.shouldDrawOnMainThread, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void didChangeValueForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			NativeMethods.didChangeValueForKey_( Handle, CachedSelectors.didChangeValueForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void didChangeValueForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern double fadeDuration( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool shouldDrawOnMainThread( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector didChangeValueForKey_ = "didChangeValueForKey:";
			public static readonly Selector fadeDuration = "fadeDuration";
			public static readonly Selector shouldDrawOnMainThread = "shouldDrawOnMainThread";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CATransaction : IEquatable<CATransaction> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CATransaction;
		public static implicit operator NSObject( CATransaction value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CATransaction value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CATransaction value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CATransaction?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CATransaction value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CATransaction value1, CATransaction value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CATransaction value1, CATransaction value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CATransaction( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CATransaction alloc() {
			return new CATransaction( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static void begin() {
			RuntimeObject ___occuredException;
			NativeMethods.begin( ClassHandle, CachedSelectors.begin, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static char beginWithoutBlocking() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.beginWithoutBlocking( ClassHandle, CachedSelectors.beginWithoutBlocking, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static void commit() {
			RuntimeObject ___occuredException;
			NativeMethods.commit( ClassHandle, CachedSelectors.commit, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static uint currentState() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.currentState( ClassHandle, CachedSelectors.currentState, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ( uint ) ___result;
		}
		unsafe public static void flush() {
			RuntimeObject ___occuredException;
			NativeMethods.flush( ClassHandle, CachedSelectors.flush, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static void @lock() {
			RuntimeObject ___occuredException;
			NativeMethods.@lock( ClassHandle, CachedSelectors.@lock, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static void setValue_forKey_( NObjective.RuntimeObject value, string forKey ) {
			RuntimeObject ___occuredException;
			var ___wrappedforKey = Runtime.CreateStringProxy( forKey );
			NativeMethods.setValue_forKey_( ClassHandle, CachedSelectors.setValue_forKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( IntPtr ), value, ___wrappedforKey );
			Runtime.ReleaseNativeObject( ___wrappedforKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static void synchronize() {
			RuntimeObject ___occuredException;
			NativeMethods.synchronize( ClassHandle, CachedSelectors.synchronize, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static void unlock() {
			RuntimeObject ___occuredException;
			NativeMethods.unlock( ClassHandle, CachedSelectors.unlock, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static NObjective.RuntimeObject valueForKey_( string key ) {
			RuntimeObject ___occuredException;
			var ___wrappedkey = Runtime.CreateStringProxy( key );
			var ___result = NativeMethods.valueForKey_( ClassHandle, CachedSelectors.valueForKey_, out ___occuredException, sizeof( IntPtr ), ___wrappedkey );
			Runtime.ReleaseNativeObject( ___wrappedkey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void begin( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char beginWithoutBlocking( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void commit( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern uint currentState( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void flush( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void @lock( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forKey_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, IntPtr forKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void synchronize( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void unlock( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForKey_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr key );
		}
		static internal class CachedSelectors {
			public static readonly Selector begin = "begin";
			public static readonly Selector beginWithoutBlocking = "beginWithoutBlocking";
			public static readonly Selector commit = "commit";
			public static readonly Selector currentState = "currentState";
			public static readonly Selector flush = "flush";
			public static readonly Selector @lock = "lock";
			public static readonly Selector setValue_forKey_ = "setValue:forKey:";
			public static readonly Selector synchronize = "synchronize";
			public static readonly Selector unlock = "unlock";
			public static readonly Selector valueForKey_ = "valueForKey:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CALayer ) )]
	public struct CATransformLayer : IEquatable<CATransformLayer> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CATransformLayer;
		public static implicit operator CALayer( CATransformLayer value ) {
			return new CALayer( value.Handle );
		}
		public static implicit operator NSObject( CATransformLayer value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CATransformLayer value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CATransformLayer value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CATransformLayer?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CATransformLayer value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CATransformLayer value1, CATransformLayer value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CATransformLayer value1, CATransformLayer value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CATransformLayer( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CATransformLayer alloc() {
			return new CATransformLayer( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CAAnimation ) )]
	public struct CATransition : IEquatable<CATransition> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CATransition;
		public static implicit operator CAAnimation( CATransition value ) {
			return new CAAnimation( value.Handle );
		}
		public static implicit operator NSObject( CATransition value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CATransition value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CATransition value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CATransition?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CATransition value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CATransition value1, CATransition value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CATransition value1, CATransition value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CATransition( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CATransition alloc() {
			return new CATransition( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public float endProgress() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.endProgress( Handle, CachedSelectors.endProgress, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject filter() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filter( Handle, CachedSelectors.filter, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public float startProgress() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.startProgress( Handle, CachedSelectors.startProgress, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject subtype() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.subtype( Handle, CachedSelectors.subtype, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public uint transitionFlags() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.transitionFlags( Handle, CachedSelectors.transitionFlags, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ( uint ) ___result;
		}
		unsafe public NObjective.RuntimeObject type() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.type( Handle, CachedSelectors.type, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		public struct ObjectiveCPropertyImplementation {
			public float endProgress {
				get { return _handle.endProgress(); }
			}
			public NObjective.RuntimeObject filter {
				get { return _handle.filter(); }
			}
			public float startProgress {
				get { return _handle.startProgress(); }
			}
			public NObjective.RuntimeObject subtype {
				get { return _handle.subtype(); }
			}
			public uint transitionFlags {
				get { return _handle.transitionFlags(); }
			}
			public NObjective.RuntimeObject type {
				get { return _handle.type(); }
			}
			private readonly CATransition _handle;
			public ObjectiveCPropertyImplementation( CATransition value ) {
				_handle = value;
			}
		}
		public ObjectiveCPropertyImplementation Properties {
			get { return new ObjectiveCPropertyImplementation( this ); }
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float endProgress( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filter( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float startProgress( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr subtype( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern uint transitionFlags( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr type( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector endProgress = "endProgress";
			public static readonly Selector filter = "filter";
			public static readonly Selector startProgress = "startProgress";
			public static readonly Selector subtype = "subtype";
			public static readonly Selector transitionFlags = "transitionFlags";
			public static readonly Selector type = "type";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CAWrappedLayoutManager : IEquatable<CAWrappedLayoutManager> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CAWrappedLayoutManager;
		public static implicit operator NSObject( CAWrappedLayoutManager value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CAWrappedLayoutManager value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CAWrappedLayoutManager value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CAWrappedLayoutManager?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CAWrappedLayoutManager value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CAWrappedLayoutManager value1, CAWrappedLayoutManager value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CAWrappedLayoutManager value1, CAWrappedLayoutManager value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CAWrappedLayoutManager( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CAWrappedLayoutManager alloc() {
			return new CAWrappedLayoutManager( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static char CAML_supportedClass() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.CAML_supportedClass( ClassHandle, CachedSelectors.CAML_supportedClass, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static NObjective.RuntimeObject layoutManager() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.layoutManager( ClassHandle, CachedSelectors.layoutManager, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void layoutSublayersOfLayer_( NObjective.RuntimeObject layer ) {
			RuntimeObject ___occuredException;
			NativeMethods.layoutSublayersOfLayer_( Handle, CachedSelectors.layoutSublayersOfLayer_, out ___occuredException, sizeof( NObjective.RuntimeObject ), layer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char CAML_supportedClass( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr layoutManager( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void layoutSublayersOfLayer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject layer );
		}
		static internal class CachedSelectors {
			public static readonly Selector CAML_supportedClass = "CAML_supportedClass";
			public static readonly Selector layoutManager = "layoutManager";
			public static readonly Selector layoutSublayersOfLayer_ = "layoutSublayersOfLayer:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAddBlendMode : IEquatable<CIAddBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAddBlendMode;
		public static implicit operator CIFilter( CIAddBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAddBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAddBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAddBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAddBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAddBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAddBlendMode value1, CIAddBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAddBlendMode value1, CIAddBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAddBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAddBlendMode alloc() {
			return new CIAddBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAdditionCompositing : IEquatable<CIAdditionCompositing> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAdditionCompositing;
		public static implicit operator CIFilter( CIAdditionCompositing value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAdditionCompositing value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAdditionCompositing value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAdditionCompositing value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAdditionCompositing?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAdditionCompositing value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAdditionCompositing value1, CIAdditionCompositing value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAdditionCompositing value1, CIAdditionCompositing value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAdditionCompositing( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAdditionCompositing alloc() {
			return new CIAdditionCompositing( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAdjustBrightnessContrast : IEquatable<CIAdjustBrightnessContrast> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAdjustBrightnessContrast;
		public static implicit operator CIFilter( CIAdjustBrightnessContrast value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAdjustBrightnessContrast value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAdjustBrightnessContrast value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAdjustBrightnessContrast value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAdjustBrightnessContrast?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAdjustBrightnessContrast value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAdjustBrightnessContrast value1, CIAdjustBrightnessContrast value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAdjustBrightnessContrast value1, CIAdjustBrightnessContrast value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAdjustBrightnessContrast( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAdjustBrightnessContrast alloc() {
			return new CIAdjustBrightnessContrast( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAdvancedHeightFieldFromMask : IEquatable<CIAdvancedHeightFieldFromMask> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAdvancedHeightFieldFromMask;
		public static implicit operator CIFilter( CIAdvancedHeightFieldFromMask value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAdvancedHeightFieldFromMask value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAdvancedHeightFieldFromMask value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAdvancedHeightFieldFromMask value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAdvancedHeightFieldFromMask?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAdvancedHeightFieldFromMask value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAdvancedHeightFieldFromMask value1, CIAdvancedHeightFieldFromMask value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAdvancedHeightFieldFromMask value1, CIAdvancedHeightFieldFromMask value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAdvancedHeightFieldFromMask( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAdvancedHeightFieldFromMask alloc() {
			return new CIAdvancedHeightFieldFromMask( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAdvancedMaskToAlpha : IEquatable<CIAdvancedMaskToAlpha> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAdvancedMaskToAlpha;
		public static implicit operator CIFilter( CIAdvancedMaskToAlpha value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAdvancedMaskToAlpha value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAdvancedMaskToAlpha value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAdvancedMaskToAlpha value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAdvancedMaskToAlpha?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAdvancedMaskToAlpha value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAdvancedMaskToAlpha value1, CIAdvancedMaskToAlpha value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAdvancedMaskToAlpha value1, CIAdvancedMaskToAlpha value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAdvancedMaskToAlpha( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAdvancedMaskToAlpha alloc() {
			return new CIAdvancedMaskToAlpha( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAdvancedShadedMaterial : IEquatable<CIAdvancedShadedMaterial> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAdvancedShadedMaterial;
		public static implicit operator CIFilter( CIAdvancedShadedMaterial value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAdvancedShadedMaterial value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAdvancedShadedMaterial value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAdvancedShadedMaterial value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAdvancedShadedMaterial?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAdvancedShadedMaterial value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAdvancedShadedMaterial value1, CIAdvancedShadedMaterial value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAdvancedShadedMaterial value1, CIAdvancedShadedMaterial value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAdvancedShadedMaterial( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAdvancedShadedMaterial alloc() {
			return new CIAdvancedShadedMaterial( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAffineClamp : IEquatable<CIAffineClamp> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAffineClamp;
		public static implicit operator CIFilter( CIAffineClamp value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAffineClamp value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAffineClamp value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAffineClamp value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAffineClamp?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAffineClamp value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAffineClamp value1, CIAffineClamp value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAffineClamp value1, CIAffineClamp value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAffineClamp( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAffineClamp alloc() {
			return new CIAffineClamp( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAffineTile : IEquatable<CIAffineTile> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAffineTile;
		public static implicit operator CIFilter( CIAffineTile value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAffineTile value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAffineTile value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAffineTile value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAffineTile?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAffineTile value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAffineTile value1, CIAffineTile value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAffineTile value1, CIAffineTile value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAffineTile( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAffineTile alloc() {
			return new CIAffineTile( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAffineTransform : IEquatable<CIAffineTransform> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAffineTransform;
		public static implicit operator CIFilter( CIAffineTransform value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAffineTransform value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAffineTransform value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAffineTransform value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAffineTransform?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAffineTransform value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAffineTransform value1, CIAffineTransform value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAffineTransform value1, CIAffineTransform value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAffineTransform( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAffineTransform alloc() {
			return new CIAffineTransform( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAlphaAddBlendMode : IEquatable<CIAlphaAddBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAlphaAddBlendMode;
		public static implicit operator CIFilter( CIAlphaAddBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAlphaAddBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAlphaAddBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAlphaAddBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAlphaAddBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAlphaAddBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAlphaAddBlendMode value1, CIAlphaAddBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAlphaAddBlendMode value1, CIAlphaAddBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAlphaAddBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAlphaAddBlendMode alloc() {
			return new CIAlphaAddBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAreaAverage : IEquatable<CIAreaAverage> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAreaAverage;
		public static implicit operator CIFilter( CIAreaAverage value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAreaAverage value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAreaAverage value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAreaAverage value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAreaAverage?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAreaAverage value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAreaAverage value1, CIAreaAverage value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAreaAverage value1, CIAreaAverage value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAreaAverage( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAreaAverage alloc() {
			return new CIAreaAverage( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAreaCummulativeHistogramAlpha : IEquatable<CIAreaCummulativeHistogramAlpha> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAreaCummulativeHistogramAlpha;
		public static implicit operator CIFilter( CIAreaCummulativeHistogramAlpha value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAreaCummulativeHistogramAlpha value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAreaCummulativeHistogramAlpha value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAreaCummulativeHistogramAlpha value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAreaCummulativeHistogramAlpha?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAreaCummulativeHistogramAlpha value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAreaCummulativeHistogramAlpha value1, CIAreaCummulativeHistogramAlpha value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAreaCummulativeHistogramAlpha value1, CIAreaCummulativeHistogramAlpha value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAreaCummulativeHistogramAlpha( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAreaCummulativeHistogramAlpha alloc() {
			return new CIAreaCummulativeHistogramAlpha( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAreaHistogram : IEquatable<CIAreaHistogram> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAreaHistogram;
		public static implicit operator CIFilter( CIAreaHistogram value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAreaHistogram value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAreaHistogram value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAreaHistogram value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAreaHistogram?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAreaHistogram value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAreaHistogram value1, CIAreaHistogram value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAreaHistogram value1, CIAreaHistogram value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAreaHistogram( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAreaHistogram alloc() {
			return new CIAreaHistogram( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAreaMaximum : IEquatable<CIAreaMaximum> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAreaMaximum;
		public static implicit operator CIFilter( CIAreaMaximum value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAreaMaximum value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAreaMaximum value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAreaMaximum value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAreaMaximum?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAreaMaximum value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAreaMaximum value1, CIAreaMaximum value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAreaMaximum value1, CIAreaMaximum value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAreaMaximum( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAreaMaximum alloc() {
			return new CIAreaMaximum( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject reduceWithKernels___( NObjective.RuntimeObject kernels, NObjective.RuntimeObject unnamedParameter, NObjective.RuntimeObject unnamedParameter2 ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.reduceWithKernels___( Handle, CachedSelectors.reduceWithKernels___, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), kernels, unnamedParameter, unnamedParameter2 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr reduceWithKernels___( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject kernels, NObjective.RuntimeObject unnamedParameter, NObjective.RuntimeObject unnamedParameter2 );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
			public static readonly Selector reduceWithKernels___ = "reduceWithKernels:::";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIAreaMaximum ) )]
	public struct CIAreaMaximumAlpha : IEquatable<CIAreaMaximumAlpha> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAreaMaximumAlpha;
		public static implicit operator CIAreaMaximum( CIAreaMaximumAlpha value ) {
			return new CIAreaMaximum( value.Handle );
		}
		public static implicit operator CIFilter( CIAreaMaximumAlpha value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAreaMaximumAlpha value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAreaMaximumAlpha value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAreaMaximumAlpha value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAreaMaximumAlpha?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAreaMaximumAlpha value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAreaMaximumAlpha value1, CIAreaMaximumAlpha value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAreaMaximumAlpha value1, CIAreaMaximumAlpha value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAreaMaximumAlpha( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAreaMaximumAlpha alloc() {
			return new CIAreaMaximumAlpha( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIAreaMaximum ) )]
	public struct CIAreaMinimum : IEquatable<CIAreaMinimum> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAreaMinimum;
		public static implicit operator CIAreaMaximum( CIAreaMinimum value ) {
			return new CIAreaMaximum( value.Handle );
		}
		public static implicit operator CIFilter( CIAreaMinimum value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAreaMinimum value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAreaMinimum value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAreaMinimum value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAreaMinimum?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAreaMinimum value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAreaMinimum value1, CIAreaMinimum value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAreaMinimum value1, CIAreaMinimum value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAreaMinimum( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAreaMinimum alloc() {
			return new CIAreaMinimum( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIAreaMaximum ) )]
	public struct CIAreaMinimumAlpha : IEquatable<CIAreaMinimumAlpha> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAreaMinimumAlpha;
		public static implicit operator CIAreaMaximum( CIAreaMinimumAlpha value ) {
			return new CIAreaMaximum( value.Handle );
		}
		public static implicit operator CIFilter( CIAreaMinimumAlpha value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAreaMinimumAlpha value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAreaMinimumAlpha value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAreaMinimumAlpha value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAreaMinimumAlpha?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAreaMinimumAlpha value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAreaMinimumAlpha value1, CIAreaMinimumAlpha value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAreaMinimumAlpha value1, CIAreaMinimumAlpha value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAreaMinimumAlpha( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAreaMinimumAlpha alloc() {
			return new CIAreaMinimumAlpha( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAutoBlackPointWhitePoint : IEquatable<CIAutoBlackPointWhitePoint> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAutoBlackPointWhitePoint;
		public static implicit operator CIFilter( CIAutoBlackPointWhitePoint value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAutoBlackPointWhitePoint value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAutoBlackPointWhitePoint value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAutoBlackPointWhitePoint value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAutoBlackPointWhitePoint?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAutoBlackPointWhitePoint value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAutoBlackPointWhitePoint value1, CIAutoBlackPointWhitePoint value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAutoBlackPointWhitePoint value1, CIAutoBlackPointWhitePoint value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAutoBlackPointWhitePoint( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAutoBlackPointWhitePoint alloc() {
			return new CIAutoBlackPointWhitePoint( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject forcePromise_( NObjective.RuntimeObject promise ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.forcePromise_( Handle, CachedSelectors.forcePromise_, out ___occuredException, sizeof( NObjective.RuntimeObject ), promise );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr forcePromise_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject promise );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector forcePromise_ = "forcePromise:";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAxialBlur : IEquatable<CIAxialBlur> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAxialBlur;
		public static implicit operator CIFilter( CIAxialBlur value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAxialBlur value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAxialBlur value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAxialBlur value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAxialBlur?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAxialBlur value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAxialBlur value1, CIAxialBlur value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAxialBlur value1, CIAxialBlur value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAxialBlur( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAxialBlur alloc() {
			return new CIAxialBlur( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject accumulate__minRadius_factor_( NObjective.RuntimeObject accumulate, NObjective.RuntimeObject unnamedParameter, float minRadius, float factor ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.accumulate__minRadius_factor_( Handle, CachedSelectors.accumulate__minRadius_factor_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( float ), accumulate, unnamedParameter, minRadius, factor );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr accumulate__minRadius_factor_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject accumulate, NObjective.RuntimeObject unnamedParameter, float minRadius, float factor );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector accumulate__minRadius_factor_ = "accumulate::minRadius:factor:";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIAxialMotionBlur : IEquatable<CIAxialMotionBlur> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIAxialMotionBlur;
		public static implicit operator CIFilter( CIAxialMotionBlur value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIAxialMotionBlur value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIAxialMotionBlur value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIAxialMotionBlur value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIAxialMotionBlur?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIAxialMotionBlur value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIAxialMotionBlur value1, CIAxialMotionBlur value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIAxialMotionBlur value1, CIAxialMotionBlur value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIAxialMotionBlur( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIAxialMotionBlur alloc() {
			return new CIAxialMotionBlur( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject accumulate__minRadius_factor_( NObjective.RuntimeObject accumulate, NObjective.RuntimeObject unnamedParameter, float minRadius, float factor ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.accumulate__minRadius_factor_( Handle, CachedSelectors.accumulate__minRadius_factor_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( float ), accumulate, unnamedParameter, minRadius, factor );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject blur_pass_( NObjective.RuntimeObject blur, int pass ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blur_pass_( Handle, CachedSelectors.blur_pass_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( int ), blur, pass );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr accumulate__minRadius_factor_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject accumulate, NObjective.RuntimeObject unnamedParameter, float minRadius, float factor );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr blur_pass_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject blur, int pass );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector accumulate__minRadius_factor_ = "accumulate::minRadius:factor:";
			public static readonly Selector blur_pass_ = "blur:pass:";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIBackground : IEquatable<CIBackground> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBackground;
		public static implicit operator CIFilter( CIBackground value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIBackground value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBackground value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBackground value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBackground?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBackground value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBackground value1, CIBackground value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBackground value1, CIBackground value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBackground( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBackground alloc() {
			return new CIBackground( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIBarsSwipeTransition : IEquatable<CIBarsSwipeTransition> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBarsSwipeTransition;
		public static implicit operator CIFilter( CIBarsSwipeTransition value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIBarsSwipeTransition value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBarsSwipeTransition value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBarsSwipeTransition value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBarsSwipeTransition?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBarsSwipeTransition value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBarsSwipeTransition value1, CIBarsSwipeTransition value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBarsSwipeTransition value1, CIBarsSwipeTransition value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBarsSwipeTransition( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBarsSwipeTransition alloc() {
			return new CIBarsSwipeTransition( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIBayerReconstruction : IEquatable<CIBayerReconstruction> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBayerReconstruction;
		public static implicit operator CIFilter( CIBayerReconstruction value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIBayerReconstruction value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBayerReconstruction value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBayerReconstruction value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBayerReconstruction?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBayerReconstruction value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBayerReconstruction value1, CIBayerReconstruction value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBayerReconstruction value1, CIBayerReconstruction value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBayerReconstruction( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBayerReconstruction alloc() {
			return new CIBayerReconstruction( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject antiAliasingFilter_phase_greenAmount_redBlueAmount_( NObjective.RuntimeObject filter, NObjective.RuntimeObject phase, NObjective.RuntimeObject greenAmount, NObjective.RuntimeObject redBlueAmount ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.antiAliasingFilter_phase_greenAmount_redBlueAmount_( Handle, CachedSelectors.antiAliasingFilter_phase_greenAmount_redBlueAmount_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), filter, phase, greenAmount, redBlueAmount );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject blackSubtractAndPremultiply_pattern_factors_blackLevels_image_( NObjective.RuntimeObject premultiply, uint pattern, System.IntPtr factors, NObjective.RuntimeObject blackLevels, System.IntPtr image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blackSubtractAndPremultiply_pattern_factors_blackLevels_image_( Handle, CachedSelectors.blackSubtractAndPremultiply_pattern_factors_blackLevels_image_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ) + sizeof( System.IntPtr ) + sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ), premultiply, pattern, factors, blackLevels, image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject blueReconstruction_green_phase_( NObjective.RuntimeObject reconstruction, NObjective.RuntimeObject green, NObjective.RuntimeObject phase ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blueReconstruction_green_phase_( Handle, CachedSelectors.blueReconstruction_green_phase_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), reconstruction, green, phase );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject blurHalfSizeImage_sampler_radius_kind_( NObjective.RuntimeObject image, NObjective.RuntimeObject sampler, NObjective.RuntimeObject radius, int kind ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blurHalfSizeImage_sampler_radius_kind_( Handle, CachedSelectors.blurHalfSizeImage_sampler_radius_kind_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( int ), image, sampler, radius, kind );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject demosaic0_pattern_scale1_scale2_phase_redBlueSwap_hsp_hspe_green_gdec_gvdec_emask_sgreen_bhse_red_blue_( NObjective.RuntimeObject demosaic0, uint pattern, float scale1, float scale2, float phase, char redBlueSwap, System.IntPtr hsp, System.IntPtr hspe, System.IntPtr green, System.IntPtr gdec, 
		System.IntPtr gvdec, System.IntPtr emask, System.IntPtr sgreen, System.IntPtr bhse, System.IntPtr red, System.IntPtr blue ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.demosaic0_pattern_scale1_scale2_phase_redBlueSwap_hsp_hspe_green_gdec_gvdec_emask_sgreen_bhse_red_blue_( Handle, CachedSelectors.demosaic0_pattern_scale1_scale2_phase_redBlueSwap_hsp_hspe_green_gdec_gvdec_emask_sgreen_bhse_red_blue_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( char ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ), demosaic0, pattern, scale1, scale2, phase, redBlueSwap, 
			hsp, hspe, green, gdec, gvdec, emask, sgreen, bhse, red, blue
			 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject fullNoiseReduction_pattern_radius_slope_( NObjective.RuntimeObject reduction, uint pattern, NObjective.RuntimeObject radius, NObjective.RuntimeObject slope ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.fullNoiseReduction_pattern_radius_slope_( Handle, CachedSelectors.fullNoiseReduction_pattern_radius_slope_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), reduction, pattern, radius, slope );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject greenReconstruction_edges_phase_scale1_scale2_decisionImage_votingImage_( NObjective.RuntimeObject reconstruction, NObjective.RuntimeObject edges, NObjective.RuntimeObject phase, NObjective.RuntimeObject scale1, NObjective.RuntimeObject scale2, System.IntPtr decisionImage, System.IntPtr votingImage ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.greenReconstruction_edges_phase_scale1_scale2_decisionImage_votingImage_( Handle, CachedSelectors.greenReconstruction_edges_phase_scale1_scale2_decisionImage_votingImage_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ), reconstruction, edges, phase, scale1, scale2, decisionImage, 
			votingImage );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject halfSizePicture_pattern_( NObjective.RuntimeObject picture, uint pattern ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.halfSizePicture_pattern_( Handle, CachedSelectors.halfSizePicture_pattern_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ), picture, pattern );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject halfSizePictureEdges_scale_( NObjective.RuntimeObject edges, NObjective.RuntimeObject scale ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.halfSizePictureEdges_scale_( Handle, CachedSelectors.halfSizePictureEdges_scale_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), edges, scale );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject highlightRecovery_pattern_clipLevels_phase_redBlueSwap_image_( NObjective.RuntimeObject recovery, uint pattern, System.IntPtr clipLevels, NObjective.RuntimeObject phase, char redBlueSwap, System.IntPtr image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.highlightRecovery_pattern_clipLevels_phase_redBlueSwap_image_( Handle, CachedSelectors.highlightRecovery_pattern_clipLevels_phase_redBlueSwap_image_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ) + sizeof( System.IntPtr ) + sizeof( NObjective.RuntimeObject ) + sizeof( char ) + sizeof( System.IntPtr ), recovery, pattern, clipLevels, phase, redBlueSwap, image
			 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject redNoiseReduction_pattern_radius_slope_( NObjective.RuntimeObject reduction, uint pattern, NObjective.RuntimeObject radius, NObjective.RuntimeObject slope ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.redNoiseReduction_pattern_radius_slope_( Handle, CachedSelectors.redNoiseReduction_pattern_radius_slope_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), reduction, pattern, radius, slope );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject redReconstruction_green_phase_( NObjective.RuntimeObject reconstruction, NObjective.RuntimeObject green, NObjective.RuntimeObject phase ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.redReconstruction_green_phase_( Handle, CachedSelectors.redReconstruction_green_phase_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), reconstruction, green, phase );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject sharpenReconstructedGreenEdges_radius_intensity_edgeIntensity_edgeThreshold_edgeMaskRadius_edgeMask_( NObjective.RuntimeObject edges, NObjective.RuntimeObject radius, NObjective.RuntimeObject intensity, NObjective.RuntimeObject edgeIntensity, NObjective.RuntimeObject edgeThreshold, NObjective.RuntimeObject edgeMaskRadius, System.IntPtr edgeMask ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.sharpenReconstructedGreenEdges_radius_intensity_edgeIntensity_edgeThreshold_edgeMaskRadius_edgeMask_( Handle, CachedSelectors.sharpenReconstructedGreenEdges_radius_intensity_edgeIntensity_edgeThreshold_edgeMaskRadius_edgeMask_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ), edges, radius, intensity, edgeIntensity, edgeThreshold, edgeMaskRadius, 
			edgeMask );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject standardCrop_original_( NObjective.RuntimeObject crop, NObjective.RuntimeObject original ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.standardCrop_original_( Handle, CachedSelectors.standardCrop_original_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), crop, original );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject stuckPixelElimination_threshold_phase_( NObjective.RuntimeObject elimination, NObjective.RuntimeObject threshold, NObjective.RuntimeObject phase ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.stuckPixelElimination_threshold_phase_( Handle, CachedSelectors.stuckPixelElimination_threshold_phase_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), elimination, threshold, phase );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr antiAliasingFilter_phase_greenAmount_redBlueAmount_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject filter, NObjective.RuntimeObject phase, NObjective.RuntimeObject greenAmount, NObjective.RuntimeObject redBlueAmount );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr blackSubtractAndPremultiply_pattern_factors_blackLevels_image_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject premultiply, uint pattern, System.IntPtr factors, NObjective.RuntimeObject blackLevels, System.IntPtr image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr blueReconstruction_green_phase_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject reconstruction, NObjective.RuntimeObject green, NObjective.RuntimeObject phase );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr blurHalfSizeImage_sampler_radius_kind_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject image, NObjective.RuntimeObject sampler, NObjective.RuntimeObject radius, int kind );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr demosaic0_pattern_scale1_scale2_phase_redBlueSwap_hsp_hspe_green_gdec_gvdec_emask_sgreen_bhse_red_blue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject demosaic0, uint pattern, float scale1, float scale2, float phase, char redBlueSwap, 
			System.IntPtr hsp, System.IntPtr hspe, System.IntPtr green, System.IntPtr gdec, System.IntPtr gvdec, System.IntPtr emask, System.IntPtr sgreen, System.IntPtr bhse, System.IntPtr red, System.IntPtr blue
			 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr fullNoiseReduction_pattern_radius_slope_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject reduction, uint pattern, NObjective.RuntimeObject radius, NObjective.RuntimeObject slope );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr greenReconstruction_edges_phase_scale1_scale2_decisionImage_votingImage_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject reconstruction, NObjective.RuntimeObject edges, NObjective.RuntimeObject phase, NObjective.RuntimeObject scale1, NObjective.RuntimeObject scale2, System.IntPtr decisionImage, 
			System.IntPtr votingImage );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr halfSizePicture_pattern_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject picture, uint pattern );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr halfSizePictureEdges_scale_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject edges, NObjective.RuntimeObject scale );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr highlightRecovery_pattern_clipLevels_phase_redBlueSwap_image_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject recovery, uint pattern, System.IntPtr clipLevels, NObjective.RuntimeObject phase, char redBlueSwap, System.IntPtr image
			 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr redNoiseReduction_pattern_radius_slope_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject reduction, uint pattern, NObjective.RuntimeObject radius, NObjective.RuntimeObject slope );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr redReconstruction_green_phase_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject reconstruction, NObjective.RuntimeObject green, NObjective.RuntimeObject phase );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr sharpenReconstructedGreenEdges_radius_intensity_edgeIntensity_edgeThreshold_edgeMaskRadius_edgeMask_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject edges, NObjective.RuntimeObject radius, NObjective.RuntimeObject intensity, NObjective.RuntimeObject edgeIntensity, NObjective.RuntimeObject edgeThreshold, NObjective.RuntimeObject edgeMaskRadius, 
			System.IntPtr edgeMask );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr standardCrop_original_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject crop, NObjective.RuntimeObject original );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr stuckPixelElimination_threshold_phase_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject elimination, NObjective.RuntimeObject threshold, NObjective.RuntimeObject phase );
		}
		static internal class CachedSelectors {
			public static readonly Selector antiAliasingFilter_phase_greenAmount_redBlueAmount_ = "antiAliasingFilter:phase:greenAmount:redBlueAmount:";
			public static readonly Selector blackSubtractAndPremultiply_pattern_factors_blackLevels_image_ = "blackSubtractAndPremultiply:pattern:factors:blackLevels:image:";
			public static readonly Selector blueReconstruction_green_phase_ = "blueReconstruction:green:phase:";
			public static readonly Selector blurHalfSizeImage_sampler_radius_kind_ = "blurHalfSizeImage:sampler:radius:kind:";
			public static readonly Selector demosaic0_pattern_scale1_scale2_phase_redBlueSwap_hsp_hspe_green_gdec_gvdec_emask_sgreen_bhse_red_blue_ = "demosaic0:pattern:scale1:scale2:phase:redBlueSwap:hsp:hspe:green:gdec:gvdec:emask:sgreen:bhse:red:blue:";
			public static readonly Selector fullNoiseReduction_pattern_radius_slope_ = "fullNoiseReduction:pattern:radius:slope:";
			public static readonly Selector greenReconstruction_edges_phase_scale1_scale2_decisionImage_votingImage_ = "greenReconstruction:edges:phase:scale1:scale2:decisionImage:votingImage:";
			public static readonly Selector halfSizePicture_pattern_ = "halfSizePicture:pattern:";
			public static readonly Selector halfSizePictureEdges_scale_ = "halfSizePictureEdges:scale:";
			public static readonly Selector highlightRecovery_pattern_clipLevels_phase_redBlueSwap_image_ = "highlightRecovery:pattern:clipLevels:phase:redBlueSwap:image:";
			public static readonly Selector outputImage = "outputImage";
			public static readonly Selector redNoiseReduction_pattern_radius_slope_ = "redNoiseReduction:pattern:radius:slope:";
			public static readonly Selector redReconstruction_green_phase_ = "redReconstruction:green:phase:";
			public static readonly Selector sharpenReconstructedGreenEdges_radius_intensity_edgeIntensity_edgeThreshold_edgeMaskRadius_edgeMask_ = "sharpenReconstructedGreenEdges:radius:intensity:edgeIntensity:edgeThreshold:edgeMaskRadius:edgeMask:";
			public static readonly Selector standardCrop_original_ = "standardCrop:original:";
			public static readonly Selector stuckPixelElimination_threshold_phase_ = "stuckPixelElimination:threshold:phase:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIBayerReconstructionV0 : IEquatable<CIBayerReconstructionV0> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBayerReconstructionV0;
		public static implicit operator CIFilter( CIBayerReconstructionV0 value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIBayerReconstructionV0 value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBayerReconstructionV0 value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBayerReconstructionV0 value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBayerReconstructionV0?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBayerReconstructionV0 value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBayerReconstructionV0 value1, CIBayerReconstructionV0 value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBayerReconstructionV0 value1, CIBayerReconstructionV0 value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBayerReconstructionV0( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBayerReconstructionV0 alloc() {
			return new CIBayerReconstructionV0( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject blackSubtractAndPremultiply_pattern_factors_blackLevels_image_( NObjective.RuntimeObject premultiply, uint pattern, System.IntPtr factors, NObjective.RuntimeObject blackLevels, System.IntPtr image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blackSubtractAndPremultiply_pattern_factors_blackLevels_image_( Handle, CachedSelectors.blackSubtractAndPremultiply_pattern_factors_blackLevels_image_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ) + sizeof( System.IntPtr ) + sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ), premultiply, pattern, factors, blackLevels, image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject blueReconstruction_green_phase_image_( NObjective.RuntimeObject reconstruction, NObjective.RuntimeObject green, NObjective.RuntimeObject phase, System.IntPtr image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blueReconstruction_green_phase_image_( Handle, CachedSelectors.blueReconstruction_green_phase_image_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ), reconstruction, green, phase, image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject blurHalfSizeImage_radius_image_( NObjective.RuntimeObject image, NObjective.RuntimeObject radius, System.IntPtr image2 ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blurHalfSizeImage_radius_image_( Handle, CachedSelectors.blurHalfSizeImage_radius_image_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ), image, radius, image2 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject greenReconstruction_edges_phase_scale1_scale2_decisions_votedDecisions_image_decisionImage_votingImage_( NObjective.RuntimeObject reconstruction, NObjective.RuntimeObject edges, NObjective.RuntimeObject phase, NObjective.RuntimeObject scale1, NObjective.RuntimeObject scale2, System.IntPtr decisions, System.IntPtr votedDecisions, System.IntPtr image, System.IntPtr decisionImage, System.IntPtr votingImage
		 ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.greenReconstruction_edges_phase_scale1_scale2_decisions_votedDecisions_image_decisionImage_votingImage_( Handle, CachedSelectors.greenReconstruction_edges_phase_scale1_scale2_decisions_votedDecisions_image_decisionImage_votingImage_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ), reconstruction, edges, phase, scale1, scale2, decisions, 
			votedDecisions, image, decisionImage, votingImage );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject halfSizePicture_pattern_image_( NObjective.RuntimeObject picture, uint pattern, System.IntPtr image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.halfSizePicture_pattern_image_( Handle, CachedSelectors.halfSizePicture_pattern_image_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ) + sizeof( System.IntPtr ), picture, pattern, image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject halfSizePictureEdges_scale_image_( NObjective.RuntimeObject edges, NObjective.RuntimeObject scale, System.IntPtr image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.halfSizePictureEdges_scale_image_( Handle, CachedSelectors.halfSizePictureEdges_scale_image_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ), edges, scale, image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject highlightRecovery_pattern_clipLevels_redPhase_greenPhase_bluePhase_redBlueSwap_image_( NObjective.RuntimeObject recovery, uint pattern, System.IntPtr clipLevels, NObjective.RuntimeObject redPhase, NObjective.RuntimeObject greenPhase, NObjective.RuntimeObject bluePhase, char redBlueSwap, System.IntPtr image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.highlightRecovery_pattern_clipLevels_redPhase_greenPhase_bluePhase_redBlueSwap_image_( Handle, CachedSelectors.highlightRecovery_pattern_clipLevels_redPhase_greenPhase_bluePhase_redBlueSwap_image_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ) + sizeof( System.IntPtr ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( char ) + sizeof( System.IntPtr ), recovery, pattern, clipLevels, redPhase, greenPhase, bluePhase, 
			redBlueSwap, image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject redNoiseReduction_pattern_radius_slope_( NObjective.RuntimeObject reduction, uint pattern, NObjective.RuntimeObject radius, NObjective.RuntimeObject slope ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.redNoiseReduction_pattern_radius_slope_( Handle, CachedSelectors.redNoiseReduction_pattern_radius_slope_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), reduction, pattern, radius, slope );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject redReconstruction_green_phase_image_( NObjective.RuntimeObject reconstruction, NObjective.RuntimeObject green, NObjective.RuntimeObject phase, System.IntPtr image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.redReconstruction_green_phase_image_( Handle, CachedSelectors.redReconstruction_green_phase_image_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ), reconstruction, green, phase, image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject sharpenReconstructedGreenEdges_radius_intensity_edgeIntensity_edgeThreshold_perceptual_blurred_image_( NObjective.RuntimeObject edges, NObjective.RuntimeObject radius, NObjective.RuntimeObject intensity, NObjective.RuntimeObject edgeIntensity, NObjective.RuntimeObject edgeThreshold, System.IntPtr perceptual, System.IntPtr blurred, System.IntPtr image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.sharpenReconstructedGreenEdges_radius_intensity_edgeIntensity_edgeThreshold_perceptual_blurred_image_( Handle, CachedSelectors.sharpenReconstructedGreenEdges_radius_intensity_edgeIntensity_edgeThreshold_perceptual_blurred_image_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ), edges, radius, intensity, edgeIntensity, edgeThreshold, perceptual, 
			blurred, image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject standardCrop_original_( NObjective.RuntimeObject crop, NObjective.RuntimeObject original ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.standardCrop_original_( Handle, CachedSelectors.standardCrop_original_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), crop, original );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject stuckPixelElimination_threshold_phase_( NObjective.RuntimeObject elimination, NObjective.RuntimeObject threshold, NObjective.RuntimeObject phase ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.stuckPixelElimination_threshold_phase_( Handle, CachedSelectors.stuckPixelElimination_threshold_phase_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), elimination, threshold, phase );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr blackSubtractAndPremultiply_pattern_factors_blackLevels_image_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject premultiply, uint pattern, System.IntPtr factors, NObjective.RuntimeObject blackLevels, System.IntPtr image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr blueReconstruction_green_phase_image_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject reconstruction, NObjective.RuntimeObject green, NObjective.RuntimeObject phase, System.IntPtr image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr blurHalfSizeImage_radius_image_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject image, NObjective.RuntimeObject radius, System.IntPtr image2 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr greenReconstruction_edges_phase_scale1_scale2_decisions_votedDecisions_image_decisionImage_votingImage_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject reconstruction, NObjective.RuntimeObject edges, NObjective.RuntimeObject phase, NObjective.RuntimeObject scale1, NObjective.RuntimeObject scale2, System.IntPtr decisions, 
			System.IntPtr votedDecisions, System.IntPtr image, System.IntPtr decisionImage, System.IntPtr votingImage );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr halfSizePicture_pattern_image_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject picture, uint pattern, System.IntPtr image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr halfSizePictureEdges_scale_image_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject edges, NObjective.RuntimeObject scale, System.IntPtr image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr highlightRecovery_pattern_clipLevels_redPhase_greenPhase_bluePhase_redBlueSwap_image_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject recovery, uint pattern, System.IntPtr clipLevels, NObjective.RuntimeObject redPhase, NObjective.RuntimeObject greenPhase, NObjective.RuntimeObject bluePhase, 
			char redBlueSwap, System.IntPtr image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr redNoiseReduction_pattern_radius_slope_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject reduction, uint pattern, NObjective.RuntimeObject radius, NObjective.RuntimeObject slope );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr redReconstruction_green_phase_image_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject reconstruction, NObjective.RuntimeObject green, NObjective.RuntimeObject phase, System.IntPtr image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr sharpenReconstructedGreenEdges_radius_intensity_edgeIntensity_edgeThreshold_perceptual_blurred_image_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject edges, NObjective.RuntimeObject radius, NObjective.RuntimeObject intensity, NObjective.RuntimeObject edgeIntensity, NObjective.RuntimeObject edgeThreshold, System.IntPtr perceptual, 
			System.IntPtr blurred, System.IntPtr image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr standardCrop_original_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject crop, NObjective.RuntimeObject original );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr stuckPixelElimination_threshold_phase_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject elimination, NObjective.RuntimeObject threshold, NObjective.RuntimeObject phase );
		}
		static internal class CachedSelectors {
			public static readonly Selector blackSubtractAndPremultiply_pattern_factors_blackLevels_image_ = "blackSubtractAndPremultiply:pattern:factors:blackLevels:image:";
			public static readonly Selector blueReconstruction_green_phase_image_ = "blueReconstruction:green:phase:image:";
			public static readonly Selector blurHalfSizeImage_radius_image_ = "blurHalfSizeImage:radius:image:";
			public static readonly Selector greenReconstruction_edges_phase_scale1_scale2_decisions_votedDecisions_image_decisionImage_votingImage_ = "greenReconstruction:edges:phase:scale1:scale2:decisions:votedDecisions:image:decisionImage:votingImage:";
			public static readonly Selector halfSizePicture_pattern_image_ = "halfSizePicture:pattern:image:";
			public static readonly Selector halfSizePictureEdges_scale_image_ = "halfSizePictureEdges:scale:image:";
			public static readonly Selector highlightRecovery_pattern_clipLevels_redPhase_greenPhase_bluePhase_redBlueSwap_image_ = "highlightRecovery:pattern:clipLevels:redPhase:greenPhase:bluePhase:redBlueSwap:image:";
			public static readonly Selector outputImage = "outputImage";
			public static readonly Selector redNoiseReduction_pattern_radius_slope_ = "redNoiseReduction:pattern:radius:slope:";
			public static readonly Selector redReconstruction_green_phase_image_ = "redReconstruction:green:phase:image:";
			public static readonly Selector sharpenReconstructedGreenEdges_radius_intensity_edgeIntensity_edgeThreshold_perceptual_blurred_image_ = "sharpenReconstructedGreenEdges:radius:intensity:edgeIntensity:edgeThreshold:perceptual:blurred:image:";
			public static readonly Selector standardCrop_original_ = "standardCrop:original:";
			public static readonly Selector stuckPixelElimination_threshold_phase_ = "stuckPixelElimination:threshold:phase:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIBehindBlendMode : IEquatable<CIBehindBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBehindBlendMode;
		public static implicit operator CIFilter( CIBehindBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIBehindBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBehindBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBehindBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBehindBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBehindBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBehindBlendMode value1, CIBehindBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBehindBlendMode value1, CIBehindBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBehindBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBehindBlendMode alloc() {
			return new CIBehindBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CISampleAreaOperation ) )]
	public struct CIBilateralConvolution : IEquatable<CIBilateralConvolution> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBilateralConvolution;
		public static implicit operator CISampleAreaOperation( CIBilateralConvolution value ) {
			return new CISampleAreaOperation( value.Handle );
		}
		public static implicit operator CIFilter( CIBilateralConvolution value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIBilateralConvolution value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBilateralConvolution value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBilateralConvolution value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBilateralConvolution?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBilateralConvolution value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBilateralConvolution value1, CIBilateralConvolution value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBilateralConvolution value1, CIBilateralConvolution value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBilateralConvolution( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBilateralConvolution alloc() {
			return new CIBilateralConvolution( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject doBilateralPass_points_weights_sums_slope_( NObjective.RuntimeObject pass, NObjective.RuntimeObject points, NObjective.RuntimeObject weights, NObjective.RuntimeObject sums, NObjective.RuntimeObject slope ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.doBilateralPass_points_weights_sums_slope_( Handle, CachedSelectors.doBilateralPass_points_weights_sums_slope_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), pass, points, weights, sums, slope );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr doBilateralPass_points_weights_sums_slope_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject pass, NObjective.RuntimeObject points, NObjective.RuntimeObject weights, NObjective.RuntimeObject sums, NObjective.RuntimeObject slope );
		}
		static internal class CachedSelectors {
			public static readonly Selector doBilateralPass_points_weights_sums_slope_ = "doBilateralPass:points:weights:sums:slope:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIBilateralFilter : IEquatable<CIBilateralFilter> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBilateralFilter;
		public static implicit operator CIFilter( CIBilateralFilter value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIBilateralFilter value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBilateralFilter value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBilateralFilter value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBilateralFilter?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBilateralFilter value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBilateralFilter value1, CIBilateralFilter value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBilateralFilter value1, CIBilateralFilter value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBilateralFilter( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBilateralFilter alloc() {
			return new CIBilateralFilter( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIContext ) )]
	public struct CIBitmapContext : IEquatable<CIBitmapContext> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBitmapContext;
		public static implicit operator CIContext( CIBitmapContext value ) {
			return new CIContext( value.Handle );
		}
		public static implicit operator NSObject( CIBitmapContext value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBitmapContext value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBitmapContext value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBitmapContext?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBitmapContext value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBitmapContext value1, CIBitmapContext value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBitmapContext value1, CIBitmapContext value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBitmapContext( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBitmapContext alloc() {
			return new CIBitmapContext( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject initWithOptions_( NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithOptions_( Handle, CachedSelectors.initWithOptions_, out ___occuredException, sizeof( NObjective.RuntimeObject ), options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithOptions_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject options );
		}
		static internal class CachedSelectors {
			public static readonly Selector initWithOptions_ = "initWithOptions:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIContextImpl ) )]
	public struct CIBitmapContextImpl : IEquatable<CIBitmapContextImpl> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBitmapContextImpl;
		public static implicit operator CIContextImpl( CIBitmapContextImpl value ) {
			return new CIContextImpl( value.Handle );
		}
		public static implicit operator NSObject( CIBitmapContextImpl value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBitmapContextImpl value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBitmapContextImpl value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBitmapContextImpl?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBitmapContextImpl value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBitmapContextImpl value1, CIBitmapContextImpl value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBitmapContextImpl value1, CIBitmapContextImpl value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBitmapContextImpl( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBitmapContextImpl alloc() {
			return new CIBitmapContextImpl( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIBlendWithMask : IEquatable<CIBlendWithMask> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBlendWithMask;
		public static implicit operator CIFilter( CIBlendWithMask value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIBlendWithMask value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBlendWithMask value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBlendWithMask value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBlendWithMask?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBlendWithMask value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBlendWithMask value1, CIBlendWithMask value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBlendWithMask value1, CIBlendWithMask value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBlendWithMask( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBlendWithMask alloc() {
			return new CIBlendWithMask( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIBloom : IEquatable<CIBloom> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBloom;
		public static implicit operator CIFilter( CIBloom value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIBloom value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBloom value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBloom value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBloom?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBloom value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBloom value1, CIBloom value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBloom value1, CIBloom value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBloom( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBloom alloc() {
			return new CIBloom( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIBoxBlur : IEquatable<CIBoxBlur> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBoxBlur;
		public static implicit operator CIFilter( CIBoxBlur value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIBoxBlur value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBoxBlur value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBoxBlur value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBoxBlur?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBoxBlur value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBoxBlur value1, CIBoxBlur value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBoxBlur value1, CIBoxBlur value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBoxBlur( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBoxBlur alloc() {
			return new CIBoxBlur( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject doHorizontalBoxPass_xOffset_count_factor_sums_( NObjective.RuntimeObject pass, float xOffset, int count, float factor, NObjective.RuntimeObject sums ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.doHorizontalBoxPass_xOffset_count_factor_sums_( Handle, CachedSelectors.doHorizontalBoxPass_xOffset_count_factor_sums_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( int ) + sizeof( float ) + sizeof( NObjective.RuntimeObject ), pass, xOffset, count, factor, sums );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject doVerticalBoxPass_yOffset_count_factor_sums_( NObjective.RuntimeObject pass, float yOffset, int count, float factor, NObjective.RuntimeObject sums ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.doVerticalBoxPass_yOffset_count_factor_sums_( Handle, CachedSelectors.doVerticalBoxPass_yOffset_count_factor_sums_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( int ) + sizeof( float ) + sizeof( NObjective.RuntimeObject ), pass, yOffset, count, factor, sums );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr doHorizontalBoxPass_xOffset_count_factor_sums_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject pass, float xOffset, int count, float factor, NObjective.RuntimeObject sums );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr doVerticalBoxPass_yOffset_count_factor_sums_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject pass, float yOffset, int count, float factor, NObjective.RuntimeObject sums );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector doHorizontalBoxPass_xOffset_count_factor_sums_ = "doHorizontalBoxPass:xOffset:count:factor:sums:";
			public static readonly Selector doVerticalBoxPass_yOffset_count_factor_sums_ = "doVerticalBoxPass:yOffset:count:factor:sums:";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIBumpDistortion : IEquatable<CIBumpDistortion> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBumpDistortion;
		public static implicit operator CIFilter( CIBumpDistortion value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIBumpDistortion value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBumpDistortion value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBumpDistortion value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBumpDistortion?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBumpDistortion value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBumpDistortion value1, CIBumpDistortion value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBumpDistortion value1, CIBumpDistortion value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBumpDistortion( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBumpDistortion alloc() {
			return new CIBumpDistortion( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIBumpDistortionLinear : IEquatable<CIBumpDistortionLinear> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBumpDistortionLinear;
		public static implicit operator CIFilter( CIBumpDistortionLinear value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIBumpDistortionLinear value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBumpDistortionLinear value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBumpDistortionLinear value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBumpDistortionLinear?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBumpDistortionLinear value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBumpDistortionLinear value1, CIBumpDistortionLinear value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBumpDistortionLinear value1, CIBumpDistortionLinear value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBumpDistortionLinear( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBumpDistortionLinear alloc() {
			return new CIBumpDistortionLinear( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIBurnBlendMode : IEquatable<CIBurnBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIBurnBlendMode;
		public static implicit operator CIFilter( CIBurnBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIBurnBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIBurnBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIBurnBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIBurnBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIBurnBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIBurnBlendMode value1, CIBurnBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIBurnBlendMode value1, CIBurnBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIBurnBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIBurnBlendMode alloc() {
			return new CIBurnBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIContext ) )]
	public struct CICGContext : IEquatable<CICGContext> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICGContext;
		public static implicit operator CIContext( CICGContext value ) {
			return new CIContext( value.Handle );
		}
		public static implicit operator NSObject( CICGContext value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICGContext value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICGContext value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICGContext?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICGContext value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICGContext value1, CICGContext value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICGContext value1, CICGContext value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICGContext( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICGContext alloc() {
			return new CICGContext( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject initWithOptions_( NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithOptions_( Handle, CachedSelectors.initWithOptions_, out ___occuredException, sizeof( NObjective.RuntimeObject ), options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithOptions_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject options );
		}
		static internal class CachedSelectors {
			public static readonly Selector initWithOptions_ = "initWithOptions:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIContextImpl ) )]
	public struct CICGContextImpl : IEquatable<CICGContextImpl> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICGContextImpl;
		public static implicit operator CIContextImpl( CICGContextImpl value ) {
			return new CIContextImpl( value.Handle );
		}
		public static implicit operator NSObject( CICGContextImpl value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICGContextImpl value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICGContextImpl value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICGContextImpl?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICGContextImpl value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICGContextImpl value1, CICGContextImpl value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICGContextImpl value1, CICGContextImpl value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICGContextImpl( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICGContextImpl alloc() {
			return new CICGContextImpl( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CICGSFilter : IEquatable<CICGSFilter> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICGSFilter;
		public static implicit operator NSObject( CICGSFilter value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICGSFilter value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICGSFilter value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICGSFilter?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICGSFilter value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICGSFilter value1, CICGSFilter value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICGSFilter value1, CICGSFilter value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICGSFilter( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICGSFilter alloc() {
			return new CICGSFilter( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject filterWithFilter_connectionID_( NObjective.RuntimeObject filter, uint connectionID ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterWithFilter_connectionID_( ClassHandle, CachedSelectors.filterWithFilter_connectionID_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ), filter, connectionID );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public int addToWindow_flags_( uint window, uint flags ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.addToWindow_flags_( Handle, CachedSelectors.addToWindow_flags_, out ___occuredException, sizeof( uint ) + sizeof( uint ), window, flags );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject initWithFilter_connectionID_( NObjective.RuntimeObject filter, uint connectionID ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithFilter_connectionID_( Handle, CachedSelectors.initWithFilter_connectionID_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ), filter, connectionID );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public int removeFromWindow_( uint window ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.removeFromWindow_( Handle, CachedSelectors.removeFromWindow_, out ___occuredException, sizeof( uint ), window );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void setValue_forKey_( NObjective.RuntimeObject value, NObjective.RuntimeObject forKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forKey_( Handle, CachedSelectors.setValue_forKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setValuesForKeysWithDictionary_( NObjective.RuntimeObject dictionary ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValuesForKeysWithDictionary_( Handle, CachedSelectors.setValuesForKeysWithDictionary_, out ___occuredException, sizeof( NObjective.RuntimeObject ), dictionary );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int addToWindow_flags_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, uint window, uint flags );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithFilter_connectionID_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject filter, uint connectionID );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithFilter_connectionID_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject filter, uint connectionID );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int removeFromWindow_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, uint window );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValuesForKeysWithDictionary_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject dictionary );
		}
		static internal class CachedSelectors {
			public static readonly Selector addToWindow_flags_ = "addToWindow:flags:";
			public static readonly Selector filterWithFilter_connectionID_ = "filterWithFilter:connectionID:";
			public static readonly Selector initWithFilter_connectionID_ = "initWithFilter:connectionID:";
			public static readonly Selector removeFromWindow_ = "removeFromWindow:";
			public static readonly Selector setValue_forKey_ = "setValue:forKey:";
			public static readonly Selector setValuesForKeysWithDictionary_ = "setValuesForKeysWithDictionary:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICheapBlur : IEquatable<CICheapBlur> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICheapBlur;
		public static implicit operator CIFilter( CICheapBlur value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICheapBlur value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICheapBlur value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICheapBlur value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICheapBlur?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICheapBlur value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICheapBlur value1, CICheapBlur value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICheapBlur value1, CICheapBlur value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICheapBlur( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICheapBlur alloc() {
			return new CICheapBlur( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICheapMorphology : IEquatable<CICheapMorphology> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICheapMorphology;
		public static implicit operator CIFilter( CICheapMorphology value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICheapMorphology value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICheapMorphology value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICheapMorphology value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICheapMorphology?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICheapMorphology value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICheapMorphology value1, CICheapMorphology value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICheapMorphology value1, CICheapMorphology value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICheapMorphology( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICheapMorphology alloc() {
			return new CICheapMorphology( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICheatBlur : IEquatable<CICheatBlur> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICheatBlur;
		public static implicit operator CIFilter( CICheatBlur value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICheatBlur value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICheatBlur value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICheatBlur value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICheatBlur?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICheatBlur value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICheatBlur value1, CICheatBlur value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICheatBlur value1, CICheatBlur value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICheatBlur( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICheatBlur alloc() {
			return new CICheatBlur( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICheckerboardGenerator : IEquatable<CICheckerboardGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICheckerboardGenerator;
		public static implicit operator CIFilter( CICheckerboardGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICheckerboardGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICheckerboardGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICheckerboardGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICheckerboardGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICheckerboardGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICheckerboardGenerator value1, CICheckerboardGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICheckerboardGenerator value1, CICheckerboardGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICheckerboardGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICheckerboardGenerator alloc() {
			return new CICheckerboardGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIChopLines : IEquatable<CIChopLines> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIChopLines;
		public static implicit operator CIFilter( CIChopLines value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIChopLines value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIChopLines value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIChopLines value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIChopLines?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIChopLines value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIChopLines value1, CIChopLines value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIChopLines value1, CIChopLines value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIChopLines( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIChopLines alloc() {
			return new CIChopLines( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICircleGenerator : IEquatable<CICircleGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICircleGenerator;
		public static implicit operator CIFilter( CICircleGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICircleGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICircleGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICircleGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICircleGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICircleGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICircleGenerator value1, CICircleGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICircleGenerator value1, CICircleGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICircleGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICircleGenerator alloc() {
			return new CICircleGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICircleSplashDistortion : IEquatable<CICircleSplashDistortion> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICircleSplashDistortion;
		public static implicit operator CIFilter( CICircleSplashDistortion value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICircleSplashDistortion value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICircleSplashDistortion value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICircleSplashDistortion value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICircleSplashDistortion?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICircleSplashDistortion value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICircleSplashDistortion value1, CICircleSplashDistortion value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICircleSplashDistortion value1, CICircleSplashDistortion value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICircleSplashDistortion( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICircleSplashDistortion alloc() {
			return new CICircleSplashDistortion( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICircularScreen : IEquatable<CICircularScreen> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICircularScreen;
		public static implicit operator CIFilter( CICircularScreen value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICircularScreen value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICircularScreen value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICircularScreen value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICircularScreen?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICircularScreen value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICircularScreen value1, CICircularScreen value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICircularScreen value1, CICircularScreen value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICircularScreen( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICircularScreen alloc() {
			return new CICircularScreen( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICircularWrap : IEquatable<CICircularWrap> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICircularWrap;
		public static implicit operator CIFilter( CICircularWrap value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICircularWrap value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICircularWrap value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICircularWrap value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICircularWrap?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICircularWrap value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICircularWrap value1, CICircularWrap value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICircularWrap value1, CICircularWrap value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICircularWrap( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICircularWrap alloc() {
			return new CICircularWrap( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICMYKHalftone : IEquatable<CICMYKHalftone> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICMYKHalftone;
		public static implicit operator CIFilter( CICMYKHalftone value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICMYKHalftone value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICMYKHalftone value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICMYKHalftone value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICMYKHalftone?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICMYKHalftone value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICMYKHalftone value1, CICMYKHalftone value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICMYKHalftone value1, CICMYKHalftone value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICMYKHalftone( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICMYKHalftone alloc() {
			return new CICMYKHalftone( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIColor : IEquatable<CIColor> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIColor;
		public static implicit operator NSObject( CIColor value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIColor value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIColor value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIColor?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIColor value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIColor value1, CIColor value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIColor value1, CIColor value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIColor( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIColor alloc() {
			return new CIColor( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static CIColor colorWithCGColor_( IntPtr color ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.colorWithCGColor_( ClassHandle, CachedSelectors.colorWithCGColor_, out ___occuredException, sizeof( IntPtr ), color );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIColor( ___result );
		}
		unsafe public static CIColor colorWithRed_green_blue_( float red, float green, float blue ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.colorWithRed_green_blue_( ClassHandle, CachedSelectors.colorWithRed_green_blue_, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ), red, green, blue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIColor( ___result );
		}
		unsafe public static CIColor colorWithRed_green_blue_alpha_( float red, float green, float blue, float alpha ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.colorWithRed_green_blue_alpha_( ClassHandle, CachedSelectors.colorWithRed_green_blue_alpha_, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), red, green, blue, alpha );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIColor( ___result );
		}
		unsafe public static CIColor colorWithString_( string @string ) {
			RuntimeObject ___occuredException;
			var ___wrappedstring = Runtime.CreateStringProxy( @string );
			var ___result = NativeMethods.colorWithString_( ClassHandle, CachedSelectors.colorWithString_, out ___occuredException, sizeof( IntPtr ), ___wrappedstring );
			Runtime.ReleaseNativeObject( ___wrappedstring );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIColor( ___result );
		}
		unsafe public float alpha() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.alpha( Handle, CachedSelectors.alpha, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float blue() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blue( Handle, CachedSelectors.blue, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public IntPtr components() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.components( Handle, CachedSelectors.components, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void convertToRGBA_( System.IntPtr rgba ) {
			RuntimeObject ___occuredException;
			NativeMethods.convertToRGBA_( Handle, CachedSelectors.convertToRGBA_, out ___occuredException, sizeof( System.IntPtr ), rgba );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void encodeWithCoder_( NSCoder coder ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeWithCoder_( Handle, CachedSelectors.encodeWithCoder_, out ___occuredException, sizeof( NSCoder ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public float green() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.green( Handle, CachedSelectors.green, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject initWithCGColor_( IntPtr color ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCGColor_( Handle, CachedSelectors.initWithCGColor_, out ___occuredException, sizeof( IntPtr ), color );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCoder_( NObjective.RuntimeObject coder ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCoder_( Handle, CachedSelectors.initWithCoder_, out ___occuredException, sizeof( NObjective.RuntimeObject ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithRed_green_blue_alpha_( float red, float green, float blue, float alpha ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithRed_green_blue_alpha_( Handle, CachedSelectors.initWithRed_green_blue_alpha_, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), red, green, blue, alpha );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithString_( NObjective.RuntimeObject @string ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithString_( Handle, CachedSelectors.initWithString_, out ___occuredException, sizeof( NObjective.RuntimeObject ), @string );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public uint numberOfComponents() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.numberOfComponents( Handle, CachedSelectors.numberOfComponents, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ( uint ) ___result;
		}
		unsafe public float red() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.red( Handle, CachedSelectors.red, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public string stringRepresentation() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.stringRepresentation( Handle, CachedSelectors.stringRepresentation, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return Runtime.UnwrapNSString( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float alpha( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float blue( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr colorWithCGColor_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr color );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr colorWithRed_green_blue_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float red, float green, float blue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr colorWithRed_green_blue_alpha_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float red, float green, float blue, float alpha );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr colorWithString_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr @string );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern System.IntPtr components( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void convertToRGBA_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr rgba );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSCoder coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float green( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCGColor_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr color );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithRed_green_blue_alpha_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float red, float green, float blue, float alpha );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithString_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @string );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern uint numberOfComponents( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float red( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr stringRepresentation( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector alpha = "alpha";
			public static readonly Selector blue = "blue";
			public static readonly Selector colorWithCGColor_ = "colorWithCGColor:";
			public static readonly Selector colorWithRed_green_blue_ = "colorWithRed:green:blue:";
			public static readonly Selector colorWithRed_green_blue_alpha_ = "colorWithRed:green:blue:alpha:";
			public static readonly Selector colorWithString_ = "colorWithString:";
			public static readonly Selector components = "components";
			public static readonly Selector convertToRGBA_ = "convertToRGBA:";
			public static readonly Selector encodeWithCoder_ = "encodeWithCoder:";
			public static readonly Selector green = "green";
			public static readonly Selector initWithCGColor_ = "initWithCGColor:";
			public static readonly Selector initWithCoder_ = "initWithCoder:";
			public static readonly Selector initWithRed_green_blue_alpha_ = "initWithRed:green:blue:alpha:";
			public static readonly Selector initWithString_ = "initWithString:";
			public static readonly Selector numberOfComponents = "numberOfComponents";
			public static readonly Selector red = "red";
			public static readonly Selector stringRepresentation = "stringRepresentation";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIColorBlendMode : IEquatable<CIColorBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIColorBlendMode;
		public static implicit operator CIFilter( CIColorBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIColorBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIColorBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIColorBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIColorBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIColorBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIColorBlendMode value1, CIColorBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIColorBlendMode value1, CIColorBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIColorBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIColorBlendMode alloc() {
			return new CIColorBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIColorBurnBlendMode : IEquatable<CIColorBurnBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIColorBurnBlendMode;
		public static implicit operator CIFilter( CIColorBurnBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIColorBurnBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIColorBurnBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIColorBurnBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIColorBurnBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIColorBurnBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIColorBurnBlendMode value1, CIColorBurnBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIColorBurnBlendMode value1, CIColorBurnBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIColorBurnBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIColorBurnBlendMode alloc() {
			return new CIColorBurnBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIColorControls : IEquatable<CIColorControls> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIColorControls;
		public static implicit operator CIFilter( CIColorControls value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIColorControls value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIColorControls value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIColorControls value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIColorControls?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIColorControls value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIColorControls value1, CIColorControls value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIColorControls value1, CIColorControls value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIColorControls( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIColorControls alloc() {
			return new CIColorControls( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIColorCube : IEquatable<CIColorCube> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIColorCube;
		public static implicit operator CIFilter( CIColorCube value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIColorCube value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIColorCube value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIColorCube value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIColorCube?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIColorCube value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIColorCube value1, CIColorCube value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIColorCube value1, CIColorCube value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIColorCube( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIColorCube alloc() {
			return new CIColorCube( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject cubeImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.cubeImage( Handle, CachedSelectors.cubeImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr cubeImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector cubeImage = "cubeImage";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIColorDodgeBlendMode : IEquatable<CIColorDodgeBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIColorDodgeBlendMode;
		public static implicit operator CIFilter( CIColorDodgeBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIColorDodgeBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIColorDodgeBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIColorDodgeBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIColorDodgeBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIColorDodgeBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIColorDodgeBlendMode value1, CIColorDodgeBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIColorDodgeBlendMode value1, CIColorDodgeBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIColorDodgeBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIColorDodgeBlendMode alloc() {
			return new CIColorDodgeBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIColorInvert : IEquatable<CIColorInvert> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIColorInvert;
		public static implicit operator CIFilter( CIColorInvert value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIColorInvert value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIColorInvert value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIColorInvert value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIColorInvert?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIColorInvert value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIColorInvert value1, CIColorInvert value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIColorInvert value1, CIColorInvert value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIColorInvert( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIColorInvert alloc() {
			return new CIColorInvert( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIColorMap : IEquatable<CIColorMap> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIColorMap;
		public static implicit operator CIFilter( CIColorMap value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIColorMap value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIColorMap value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIColorMap value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIColorMap?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIColorMap value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIColorMap value1, CIColorMap value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIColorMap value1, CIColorMap value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIColorMap( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIColorMap alloc() {
			return new CIColorMap( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIColorMatrix : IEquatable<CIColorMatrix> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIColorMatrix;
		public static implicit operator CIFilter( CIColorMatrix value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIColorMatrix value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIColorMatrix value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIColorMatrix value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIColorMatrix?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIColorMatrix value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIColorMatrix value1, CIColorMatrix value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIColorMatrix value1, CIColorMatrix value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIColorMatrix( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIColorMatrix alloc() {
			return new CIColorMatrix( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIColorMonochrome : IEquatable<CIColorMonochrome> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIColorMonochrome;
		public static implicit operator CIFilter( CIColorMonochrome value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIColorMonochrome value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIColorMonochrome value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIColorMonochrome value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIColorMonochrome?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIColorMonochrome value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIColorMonochrome value1, CIColorMonochrome value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIColorMonochrome value1, CIColorMonochrome value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIColorMonochrome( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIColorMonochrome alloc() {
			return new CIColorMonochrome( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIColorPosterize : IEquatable<CIColorPosterize> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIColorPosterize;
		public static implicit operator CIFilter( CIColorPosterize value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIColorPosterize value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIColorPosterize value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIColorPosterize value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIColorPosterize?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIColorPosterize value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIColorPosterize value1, CIColorPosterize value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIColorPosterize value1, CIColorPosterize value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIColorPosterize( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIColorPosterize alloc() {
			return new CIColorPosterize( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIColorWheelGenerator : IEquatable<CIColorWheelGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIColorWheelGenerator;
		public static implicit operator CIFilter( CIColorWheelGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIColorWheelGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIColorWheelGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIColorWheelGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIColorWheelGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIColorWheelGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIColorWheelGenerator value1, CIColorWheelGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIColorWheelGenerator value1, CIColorWheelGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIColorWheelGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIColorWheelGenerator alloc() {
			return new CIColorWheelGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIColumnAverage : IEquatable<CIColumnAverage> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIColumnAverage;
		public static implicit operator CIFilter( CIColumnAverage value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIColumnAverage value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIColumnAverage value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIColumnAverage value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIColumnAverage?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIColumnAverage value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIColumnAverage value1, CIColumnAverage value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIColumnAverage value1, CIColumnAverage value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIColumnAverage( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIColumnAverage alloc() {
			return new CIColumnAverage( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject columnAverageImage_extent_( NObjective.RuntimeObject image, NObjective.RuntimeObject extent ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.columnAverageImage_extent_( Handle, CachedSelectors.columnAverageImage_extent_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), image, extent );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr columnAverageImage_extent_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject image, NObjective.RuntimeObject extent );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector columnAverageImage_extent_ = "columnAverageImage:extent:";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIComicEffect : IEquatable<CIComicEffect> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIComicEffect;
		public static implicit operator CIFilter( CIComicEffect value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIComicEffect value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIComicEffect value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIComicEffect value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIComicEffect?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIComicEffect value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIComicEffect value1, CIComicEffect value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIComicEffect value1, CIComicEffect value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIComicEffect( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIComicEffect alloc() {
			return new CIComicEffect( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIImage ) )]
	public struct CIConcreteImage : IEquatable<CIConcreteImage> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIConcreteImage;
		public static implicit operator CIImage( CIConcreteImage value ) {
			return new CIImage( value.Handle );
		}
		public static implicit operator NSObject( CIConcreteImage value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIConcreteImage value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIConcreteImage value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIConcreteImage?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIConcreteImage value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIConcreteImage value1, CIConcreteImage value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIConcreteImage value1, CIConcreteImage value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIConcreteImage( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIConcreteImage alloc() {
			return new CIConcreteImage( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeClass classForCoder() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.classForCoder( Handle, CachedSelectors.classForCoder, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern NObjective.RuntimeClass classForCoder( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector classForCoder = "classForCoder";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIKernel ) )]
	public struct CIConcreteKernel : IEquatable<CIConcreteKernel> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIConcreteKernel;
		public static implicit operator CIKernel( CIConcreteKernel value ) {
			return new CIKernel( value.Handle );
		}
		public static implicit operator NSObject( CIConcreteKernel value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIConcreteKernel value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIConcreteKernel value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIConcreteKernel?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIConcreteKernel value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIConcreteKernel value1, CIConcreteKernel value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIConcreteKernel value1, CIConcreteKernel value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIConcreteKernel( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIConcreteKernel alloc() {
			return new CIConcreteKernel( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIPromise ) )]
	public struct CIConcretePromise : IEquatable<CIConcretePromise> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIConcretePromise;
		public static implicit operator CIPromise( CIConcretePromise value ) {
			return new CIPromise( value.Handle );
		}
		public static implicit operator CIImage( CIConcretePromise value ) {
			return new CIImage( value.Handle );
		}
		public static implicit operator NSObject( CIConcretePromise value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIConcretePromise value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIConcretePromise value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIConcretePromise?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIConcretePromise value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIConcretePromise value1, CIConcretePromise value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIConcretePromise value1, CIConcretePromise value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIConcretePromise( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIConcretePromise alloc() {
			return new CIConcretePromise( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CISampler ) )]
	public struct CIConcreteSampler : IEquatable<CIConcreteSampler> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIConcreteSampler;
		public static implicit operator CISampler( CIConcreteSampler value ) {
			return new CISampler( value.Handle );
		}
		public static implicit operator NSObject( CIConcreteSampler value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIConcreteSampler value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIConcreteSampler value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIConcreteSampler?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIConcreteSampler value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIConcreteSampler value1, CIConcreteSampler value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIConcreteSampler value1, CIConcreteSampler value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIConcreteSampler( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIConcreteSampler alloc() {
			return new CIConcreteSampler( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIConstantColorGenerator : IEquatable<CIConstantColorGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIConstantColorGenerator;
		public static implicit operator CIFilter( CIConstantColorGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIConstantColorGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIConstantColorGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIConstantColorGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIConstantColorGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIConstantColorGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIConstantColorGenerator value1, CIConstantColorGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIConstantColorGenerator value1, CIConstantColorGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIConstantColorGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIConstantColorGenerator alloc() {
			return new CIConstantColorGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIContext : IEquatable<CIContext> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIContext;
		public static implicit operator NSObject( CIContext value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIContext value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIContext value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIContext?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIContext value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIContext value1, CIContext value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIContext value1, CIContext value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIContext( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIContext alloc() {
			return new CIContext( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject context() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.context( ClassHandle, CachedSelectors.context, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static CIContext contextWithCGContext_options_( IntPtr context, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.contextWithCGContext_options_( ClassHandle, CachedSelectors.contextWithCGContext_options_, out ___occuredException, sizeof( IntPtr ) + sizeof( NSDictionary ), context, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIContext( ___result );
		}
		unsafe public static CIContext contextWithCGLContext_pixelFormat_options_( IntPtr context, IntPtr pixelFormat, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.contextWithCGLContext_pixelFormat_options_( ClassHandle, CachedSelectors.contextWithCGLContext_pixelFormat_options_, out ___occuredException, sizeof( IntPtr ) + sizeof( IntPtr ) + sizeof( NSDictionary ), context, pixelFormat, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIContext( ___result );
		}
		unsafe public static NObjective.RuntimeObject contextWithOptions_( NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.contextWithOptions_( ClassHandle, CachedSelectors.contextWithOptions_, out ___occuredException, sizeof( NObjective.RuntimeObject ), options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static uint currentVersion() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.currentVersion( ClassHandle, CachedSelectors.currentVersion, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ( uint ) ___result;
		}
		unsafe public static void initialize() {
			RuntimeObject ___occuredException;
			NativeMethods.initialize( ClassHandle, CachedSelectors.initialize, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void abort() {
			RuntimeObject ___occuredException;
			NativeMethods.abort( Handle, CachedSelectors.abort, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void clearCaches() {
			RuntimeObject ___occuredException;
			NativeMethods.clearCaches( Handle, CachedSelectors.clearCaches, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void drawImage_atPoint_fromRect_( CIImage image, CGPoint atPoint, CGRect fromRect ) {
			RuntimeObject ___occuredException;
			NativeMethods.drawImage_atPoint_fromRect_( Handle, CachedSelectors.drawImage_atPoint_fromRect_, out ___occuredException, sizeof( CIImage ) + sizeof( CGPoint ) + sizeof( CGRect ), image, atPoint, fromRect );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void drawImage_inRect_fromRect_( CIImage image, CGRect inRect, CGRect fromRect ) {
			RuntimeObject ___occuredException;
			NativeMethods.drawImage_inRect_fromRect_( Handle, CachedSelectors.drawImage_inRect_fromRect_, out ___occuredException, sizeof( CIImage ) + sizeof( CGRect ) + sizeof( CGRect ), image, inRect, fromRect );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void invalidate() {
			RuntimeObject ___occuredException;
			NativeMethods.invalidate( Handle, CachedSelectors.invalidate, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject objectForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.objectForKey_( Handle, CachedSelectors.objectForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject optionsDictionary() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.optionsDictionary( Handle, CachedSelectors.optionsDictionary, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject optionsDictionaryWithPixelAligment() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.optionsDictionaryWithPixelAligment( Handle, CachedSelectors.optionsDictionaryWithPixelAligment, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public uint passes() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.passes( Handle, CachedSelectors.passes, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ( uint ) ___result;
		}
		unsafe public float progress() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.progress( Handle, CachedSelectors.progress, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void reclaimResources() {
			RuntimeObject ___occuredException;
			NativeMethods.reclaimResources( Handle, CachedSelectors.reclaimResources, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void releaseAllResources() {
			RuntimeObject ___occuredException;
			NativeMethods.releaseAllResources( Handle, CachedSelectors.releaseAllResources, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void render_( NObjective.RuntimeObject render ) {
			RuntimeObject ___occuredException;
			NativeMethods.render_( Handle, CachedSelectors.render_, out ___occuredException, sizeof( NObjective.RuntimeObject ), render );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void render_toBitmap_rowBytes_bounds_format_colorSpace_( CIImage render, IntPtr toBitmap, int rowBytes, CGRect bounds, int format, IntPtr colorSpace ) {
			RuntimeObject ___occuredException;
			NativeMethods.render_toBitmap_rowBytes_bounds_format_colorSpace_( Handle, CachedSelectors.render_toBitmap_rowBytes_bounds_format_colorSpace_, out ___occuredException, sizeof( CIImage ) + sizeof( IntPtr ) + sizeof( int ) + sizeof( CGRect ) + sizeof( int ) + sizeof( IntPtr ), render, toBitmap, rowBytes, bounds, format, colorSpace
			 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setObject_forKey_( NObjective.RuntimeObject @object, NObjective.RuntimeObject forKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setObject_forKey_( Handle, CachedSelectors.setObject_forKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), @object, forKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setOptionsDictionary_( NObjective.RuntimeObject dictionary ) {
			RuntimeObject ___occuredException;
			NativeMethods.setOptionsDictionary_( Handle, CachedSelectors.setOptionsDictionary_, out ___occuredException, sizeof( NObjective.RuntimeObject ), dictionary );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setUserInfo_( NObjective.RuntimeObject info ) {
			RuntimeObject ___occuredException;
			NativeMethods.setUserInfo_( Handle, CachedSelectors.setUserInfo_, out ___occuredException, sizeof( NObjective.RuntimeObject ), info );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public bool testImage_( NObjective.RuntimeObject image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.testImage_( Handle, CachedSelectors.testImage_, out ___occuredException, sizeof( NObjective.RuntimeObject ), image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject userInfo() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.userInfo( Handle, CachedSelectors.userInfo, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void waitImage_( NObjective.RuntimeObject image ) {
			RuntimeObject ___occuredException;
			NativeMethods.waitImage_( Handle, CachedSelectors.waitImage_, out ___occuredException, sizeof( NObjective.RuntimeObject ), image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void abort( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void clearCaches( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr context( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr contextWithCGContext_options_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr context, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr contextWithCGLContext_pixelFormat_options_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr context, IntPtr pixelFormat, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr contextWithOptions_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern uint currentVersion( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void drawImage_atPoint_fromRect_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CIImage image, CGPoint atPoint, CGRect fromRect );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void drawImage_inRect_fromRect_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CIImage image, CGRect inRect, CGRect fromRect );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void initialize( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void invalidate( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr objectForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr optionsDictionary( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr optionsDictionaryWithPixelAligment( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern uint passes( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float progress( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void reclaimResources( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void releaseAllResources( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void render_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject render );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void render_toBitmap_rowBytes_bounds_format_colorSpace_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CIImage render, IntPtr toBitmap, int rowBytes, CGRect bounds, int format, IntPtr colorSpace
			 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setObject_forKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @object, NObjective.RuntimeObject forKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setOptionsDictionary_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject dictionary );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setUserInfo_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject info );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool testImage_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr userInfo( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void waitImage_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject image );
		}
		static internal class CachedSelectors {
			public static readonly Selector abort = "abort";
			public static readonly Selector clearCaches = "clearCaches";
			public static readonly Selector context = "context";
			public static readonly Selector contextWithCGContext_options_ = "contextWithCGContext:options:";
			public static readonly Selector contextWithCGLContext_pixelFormat_options_ = "contextWithCGLContext:pixelFormat:options:";
			public static readonly Selector contextWithOptions_ = "contextWithOptions:";
			public static readonly Selector currentVersion = "currentVersion";
			public static readonly Selector drawImage_atPoint_fromRect_ = "drawImage:atPoint:fromRect:";
			public static readonly Selector drawImage_inRect_fromRect_ = "drawImage:inRect:fromRect:";
			public static readonly Selector initialize = "initialize";
			public static readonly Selector invalidate = "invalidate";
			public static readonly Selector objectForKey_ = "objectForKey:";
			public static readonly Selector optionsDictionary = "optionsDictionary";
			public static readonly Selector optionsDictionaryWithPixelAligment = "optionsDictionaryWithPixelAligment";
			public static readonly Selector passes = "passes";
			public static readonly Selector progress = "progress";
			public static readonly Selector reclaimResources = "reclaimResources";
			public static readonly Selector releaseAllResources = "releaseAllResources";
			public static readonly Selector render_ = "render:";
			public static readonly Selector render_toBitmap_rowBytes_bounds_format_colorSpace_ = "render:toBitmap:rowBytes:bounds:format:colorSpace:";
			public static readonly Selector setObject_forKey_ = "setObject:forKey:";
			public static readonly Selector setOptionsDictionary_ = "setOptionsDictionary:";
			public static readonly Selector setUserInfo_ = "setUserInfo:";
			public static readonly Selector testImage_ = "testImage:";
			public static readonly Selector userInfo = "userInfo";
			public static readonly Selector waitImage_ = "waitImage:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIContextDebugImpl : IEquatable<CIContextDebugImpl> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIContextDebugImpl;
		public static implicit operator NSObject( CIContextDebugImpl value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIContextDebugImpl value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIContextDebugImpl value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIContextDebugImpl?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIContextDebugImpl value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIContextDebugImpl value1, CIContextDebugImpl value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIContextDebugImpl value1, CIContextDebugImpl value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIContextDebugImpl( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIContextDebugImpl alloc() {
			return new CIContextDebugImpl( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static void hookUpContext_( NObjective.RuntimeObject context ) {
			RuntimeObject ___occuredException;
			NativeMethods.hookUpContext_( ClassHandle, CachedSelectors.hookUpContext_, out ___occuredException, sizeof( NObjective.RuntimeObject ), context );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static void initialize() {
			RuntimeObject ___occuredException;
			NativeMethods.initialize( ClassHandle, CachedSelectors.initialize, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void render_( NObjective.RuntimeObject render ) {
			RuntimeObject ___occuredException;
			NativeMethods.render_( Handle, CachedSelectors.render_, out ___occuredException, sizeof( NObjective.RuntimeObject ), render );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void resetProfilingData() {
			RuntimeObject ___occuredException;
			NativeMethods.resetProfilingData( Handle, CachedSelectors.resetProfilingData, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void sendProfilingData() {
			RuntimeObject ___occuredException;
			NativeMethods.sendProfilingData( Handle, CachedSelectors.sendProfilingData, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void startOrStopProfiling_( NObjective.RuntimeObject profiling ) {
			RuntimeObject ___occuredException;
			NativeMethods.startOrStopProfiling_( Handle, CachedSelectors.startOrStopProfiling_, out ___occuredException, sizeof( NObjective.RuntimeObject ), profiling );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void unhook() {
			RuntimeObject ___occuredException;
			NativeMethods.unhook( Handle, CachedSelectors.unhook, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void hookUpContext_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject context );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void initialize( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void render_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject render );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void resetProfilingData( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void sendProfilingData( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void startOrStopProfiling_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject profiling );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void unhook( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector hookUpContext_ = "hookUpContext:";
			public static readonly Selector initialize = "initialize";
			public static readonly Selector render_ = "render:";
			public static readonly Selector resetProfilingData = "resetProfilingData";
			public static readonly Selector sendProfilingData = "sendProfilingData";
			public static readonly Selector startOrStopProfiling_ = "startOrStopProfiling:";
			public static readonly Selector unhook = "unhook";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIContextImpl : IEquatable<CIContextImpl> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIContextImpl;
		public static implicit operator NSObject( CIContextImpl value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIContextImpl value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIContextImpl value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIContextImpl?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIContextImpl value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIContextImpl value1, CIContextImpl value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIContextImpl value1, CIContextImpl value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIContextImpl( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIContextImpl alloc() {
			return new CIContextImpl( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public void abort() {
			RuntimeObject ___occuredException;
			NativeMethods.abort( Handle, CachedSelectors.abort, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void collect_( char collect ) {
			RuntimeObject ___occuredException;
			NativeMethods.collect_( Handle, CachedSelectors.collect_, out ___occuredException, sizeof( char ), collect );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject descriptionForDebugger() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.descriptionForDebugger( Handle, CachedSelectors.descriptionForDebugger, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithOptions_( NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithOptions_( Handle, CachedSelectors.initWithOptions_, out ___occuredException, sizeof( NObjective.RuntimeObject ), options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject objectForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.objectForKey_( Handle, CachedSelectors.objectForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject optionsDictionary() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.optionsDictionary( Handle, CachedSelectors.optionsDictionary, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject optionsDictionaryWithPixelAligment() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.optionsDictionaryWithPixelAligment( Handle, CachedSelectors.optionsDictionaryWithPixelAligment, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject owner() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.owner( Handle, CachedSelectors.owner, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public uint passes() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.passes( Handle, CachedSelectors.passes, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ( uint ) ___result;
		}
		unsafe public float progress() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.progress( Handle, CachedSelectors.progress, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void render_( NObjective.RuntimeObject render ) {
			RuntimeObject ___occuredException;
			NativeMethods.render_( Handle, CachedSelectors.render_, out ___occuredException, sizeof( NObjective.RuntimeObject ), render );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setObject_forKey_( NObjective.RuntimeObject @object, NObjective.RuntimeObject forKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setObject_forKey_( Handle, CachedSelectors.setObject_forKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), @object, forKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setOwner_( NObjective.RuntimeObject owner ) {
			RuntimeObject ___occuredException;
			NativeMethods.setOwner_( Handle, CachedSelectors.setOwner_, out ___occuredException, sizeof( NObjective.RuntimeObject ), owner );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setUserInfo_( NObjective.RuntimeObject info ) {
			RuntimeObject ___occuredException;
			NativeMethods.setUserInfo_( Handle, CachedSelectors.setUserInfo_, out ___occuredException, sizeof( NObjective.RuntimeObject ), info );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public bool testImage_( NObjective.RuntimeObject image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.testImage_( Handle, CachedSelectors.testImage_, out ___occuredException, sizeof( NObjective.RuntimeObject ), image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject userInfo() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.userInfo( Handle, CachedSelectors.userInfo, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void waitImage_( NObjective.RuntimeObject image ) {
			RuntimeObject ___occuredException;
			NativeMethods.waitImage_( Handle, CachedSelectors.waitImage_, out ___occuredException, sizeof( NObjective.RuntimeObject ), image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void abort( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void collect_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, char collect );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr descriptionForDebugger( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithOptions_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr objectForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr optionsDictionary( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr optionsDictionaryWithPixelAligment( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr owner( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern uint passes( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float progress( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void render_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject render );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setObject_forKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @object, NObjective.RuntimeObject forKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setOwner_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject owner );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setUserInfo_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject info );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool testImage_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr userInfo( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void waitImage_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject image );
		}
		static internal class CachedSelectors {
			public static readonly Selector abort = "abort";
			public static readonly Selector collect_ = "collect:";
			public static readonly Selector descriptionForDebugger = "descriptionForDebugger";
			public static readonly Selector initWithOptions_ = "initWithOptions:";
			public static readonly Selector objectForKey_ = "objectForKey:";
			public static readonly Selector optionsDictionary = "optionsDictionary";
			public static readonly Selector optionsDictionaryWithPixelAligment = "optionsDictionaryWithPixelAligment";
			public static readonly Selector owner = "owner";
			public static readonly Selector passes = "passes";
			public static readonly Selector progress = "progress";
			public static readonly Selector render_ = "render:";
			public static readonly Selector setObject_forKey_ = "setObject:forKey:";
			public static readonly Selector setOwner_ = "setOwner:";
			public static readonly Selector setUserInfo_ = "setUserInfo:";
			public static readonly Selector testImage_ = "testImage:";
			public static readonly Selector userInfo = "userInfo";
			public static readonly Selector waitImage_ = "waitImage:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CISampleAreaOperation ) )]
	public struct CIConvolution : IEquatable<CIConvolution> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIConvolution;
		public static implicit operator CISampleAreaOperation( CIConvolution value ) {
			return new CISampleAreaOperation( value.Handle );
		}
		public static implicit operator CIFilter( CIConvolution value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIConvolution value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIConvolution value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIConvolution value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIConvolution?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIConvolution value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIConvolution value1, CIConvolution value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIConvolution value1, CIConvolution value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIConvolution( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIConvolution alloc() {
			return new CIConvolution( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject doConvolutionPass_weights_sums_( NObjective.RuntimeObject pass, NObjective.RuntimeObject weights, NObjective.RuntimeObject sums ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.doConvolutionPass_weights_sums_( Handle, CachedSelectors.doConvolutionPass_weights_sums_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), pass, weights, sums );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr doConvolutionPass_weights_sums_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject pass, NObjective.RuntimeObject weights, NObjective.RuntimeObject sums );
		}
		static internal class CachedSelectors {
			public static readonly Selector doConvolutionPass_weights_sums_ = "doConvolutionPass:weights:sums:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICopyMachineTransition : IEquatable<CICopyMachineTransition> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICopyMachineTransition;
		public static implicit operator CIFilter( CICopyMachineTransition value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICopyMachineTransition value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICopyMachineTransition value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICopyMachineTransition value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICopyMachineTransition?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICopyMachineTransition value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICopyMachineTransition value1, CICopyMachineTransition value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICopyMachineTransition value1, CICopyMachineTransition value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICopyMachineTransition( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICopyMachineTransition alloc() {
			return new CICopyMachineTransition( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICorrectHighlights : IEquatable<CICorrectHighlights> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICorrectHighlights;
		public static implicit operator CIFilter( CICorrectHighlights value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICorrectHighlights value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICorrectHighlights value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICorrectHighlights value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICorrectHighlights?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICorrectHighlights value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICorrectHighlights value1, CICorrectHighlights value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICorrectHighlights value1, CICorrectHighlights value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICorrectHighlights( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICorrectHighlights alloc() {
			return new CICorrectHighlights( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICrop : IEquatable<CICrop> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICrop;
		public static implicit operator CIFilter( CICrop value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICrop value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICrop value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICrop value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICrop?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICrop value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICrop value1, CICrop value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICrop value1, CICrop value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICrop( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICrop alloc() {
			return new CICrop( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICropAlphaFilter : IEquatable<CICropAlphaFilter> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICropAlphaFilter;
		public static implicit operator CIFilter( CICropAlphaFilter value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICropAlphaFilter value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICropAlphaFilter value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICropAlphaFilter value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICropAlphaFilter?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICropAlphaFilter value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICropAlphaFilter value1, CICropAlphaFilter value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICropAlphaFilter value1, CICropAlphaFilter value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICropAlphaFilter( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICropAlphaFilter alloc() {
			return new CICropAlphaFilter( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICrystallize : IEquatable<CICrystallize> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICrystallize;
		public static implicit operator CIFilter( CICrystallize value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICrystallize value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICrystallize value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICrystallize value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICrystallize?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICrystallize value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICrystallize value1, CICrystallize value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICrystallize value1, CICrystallize value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICrystallize( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICrystallize alloc() {
			return new CICrystallize( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICubicGradientGenerator : IEquatable<CICubicGradientGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICubicGradientGenerator;
		public static implicit operator CIFilter( CICubicGradientGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICubicGradientGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICubicGradientGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICubicGradientGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICubicGradientGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICubicGradientGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICubicGradientGenerator value1, CICubicGradientGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICubicGradientGenerator value1, CICubicGradientGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICubicGradientGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICubicGradientGenerator alloc() {
			return new CICubicGradientGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICubicGradientGenerator2 : IEquatable<CICubicGradientGenerator2> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICubicGradientGenerator2;
		public static implicit operator CIFilter( CICubicGradientGenerator2 value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICubicGradientGenerator2 value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICubicGradientGenerator2 value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICubicGradientGenerator2 value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICubicGradientGenerator2?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICubicGradientGenerator2 value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICubicGradientGenerator2 value1, CICubicGradientGenerator2 value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICubicGradientGenerator2 value1, CICubicGradientGenerator2 value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICubicGradientGenerator2( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICubicGradientGenerator2 alloc() {
			return new CICubicGradientGenerator2( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICubicGradientGenerator3 : IEquatable<CICubicGradientGenerator3> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICubicGradientGenerator3;
		public static implicit operator CIFilter( CICubicGradientGenerator3 value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICubicGradientGenerator3 value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICubicGradientGenerator3 value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICubicGradientGenerator3 value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICubicGradientGenerator3?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICubicGradientGenerator3 value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICubicGradientGenerator3 value1, CICubicGradientGenerator3 value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICubicGradientGenerator3 value1, CICubicGradientGenerator3 value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICubicGradientGenerator3( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICubicGradientGenerator3 alloc() {
			return new CICubicGradientGenerator3( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICubicGradientGenerator4 : IEquatable<CICubicGradientGenerator4> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICubicGradientGenerator4;
		public static implicit operator CIFilter( CICubicGradientGenerator4 value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICubicGradientGenerator4 value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICubicGradientGenerator4 value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICubicGradientGenerator4 value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICubicGradientGenerator4?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICubicGradientGenerator4 value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICubicGradientGenerator4 value1, CICubicGradientGenerator4 value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICubicGradientGenerator4 value1, CICubicGradientGenerator4 value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICubicGradientGenerator4( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICubicGradientGenerator4 alloc() {
			return new CICubicGradientGenerator4( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CICubicGradientGenerator5 : IEquatable<CICubicGradientGenerator5> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICubicGradientGenerator5;
		public static implicit operator CIFilter( CICubicGradientGenerator5 value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CICubicGradientGenerator5 value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICubicGradientGenerator5 value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICubicGradientGenerator5 value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICubicGradientGenerator5?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICubicGradientGenerator5 value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICubicGradientGenerator5 value1, CICubicGradientGenerator5 value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICubicGradientGenerator5 value1, CICubicGradientGenerator5 value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICubicGradientGenerator5( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICubicGradientGenerator5 alloc() {
			return new CICubicGradientGenerator5( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CICVImageProviderDelegate : IEquatable<CICVImageProviderDelegate> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CICVImageProviderDelegate;
		public static implicit operator NSObject( CICVImageProviderDelegate value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CICVImageProviderDelegate value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CICVImageProviderDelegate value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CICVImageProviderDelegate?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CICVImageProviderDelegate value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CICVImageProviderDelegate value1, CICVImageProviderDelegate value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CICVImageProviderDelegate value1, CICVImageProviderDelegate value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CICVImageProviderDelegate( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CICVImageProviderDelegate alloc() {
			return new CICVImageProviderDelegate( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public void provideImageData_bytesPerRow_origin__size__userInfo_( System.IntPtr data, uint bytesPerRow, uint origin, uint unnamedParameter, uint size, uint unnamedParameter2, NObjective.RuntimeObject userInfo ) {
			RuntimeObject ___occuredException;
			NativeMethods.provideImageData_bytesPerRow_origin__size__userInfo_( Handle, CachedSelectors.provideImageData_bytesPerRow_origin__size__userInfo_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( uint ) + sizeof( uint ) + sizeof( uint ) + sizeof( uint ) + sizeof( uint ) + sizeof( NObjective.RuntimeObject ), data, bytesPerRow, origin, unnamedParameter, size, unnamedParameter2, 
			userInfo );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void provideImageData_bytesPerRow_origin__size__userInfo_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data, uint bytesPerRow, uint origin, uint unnamedParameter, uint size, uint unnamedParameter2, 
			NObjective.RuntimeObject userInfo );
		}
		static internal class CachedSelectors {
			public static readonly Selector provideImageData_bytesPerRow_origin__size__userInfo_ = "provideImageData:bytesPerRow:origin::size::userInfo:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIDarkenBlendMode : IEquatable<CIDarkenBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIDarkenBlendMode;
		public static implicit operator CIFilter( CIDarkenBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIDarkenBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIDarkenBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIDarkenBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIDarkenBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIDarkenBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIDarkenBlendMode value1, CIDarkenBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIDarkenBlendMode value1, CIDarkenBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIDarkenBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIDarkenBlendMode alloc() {
			return new CIDarkenBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIDarkerBlendMode : IEquatable<CIDarkerBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIDarkerBlendMode;
		public static implicit operator CIFilter( CIDarkerBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIDarkerBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIDarkerBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIDarkerBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIDarkerBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIDarkerBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIDarkerBlendMode value1, CIDarkerBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIDarkerBlendMode value1, CIDarkerBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIDarkerBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIDarkerBlendMode alloc() {
			return new CIDarkerBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIDeBayer : IEquatable<CIDeBayer> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIDeBayer;
		public static implicit operator CIFilter( CIDeBayer value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIDeBayer value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIDeBayer value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIDeBayer value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIDeBayer?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIDeBayer value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIDeBayer value1, CIDeBayer value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIDeBayer value1, CIDeBayer value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIDeBayer( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIDeBayer alloc() {
			return new CIDeBayer( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIDesaturateGamutMapping : IEquatable<CIDesaturateGamutMapping> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIDesaturateGamutMapping;
		public static implicit operator CIFilter( CIDesaturateGamutMapping value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIDesaturateGamutMapping value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIDesaturateGamutMapping value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIDesaturateGamutMapping value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIDesaturateGamutMapping?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIDesaturateGamutMapping value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIDesaturateGamutMapping value1, CIDesaturateGamutMapping value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIDesaturateGamutMapping value1, CIDesaturateGamutMapping value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIDesaturateGamutMapping( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIDesaturateGamutMapping alloc() {
			return new CIDesaturateGamutMapping( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIDifferenceBlendMode : IEquatable<CIDifferenceBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIDifferenceBlendMode;
		public static implicit operator CIFilter( CIDifferenceBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIDifferenceBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIDifferenceBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIDifferenceBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIDifferenceBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIDifferenceBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIDifferenceBlendMode value1, CIDifferenceBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIDifferenceBlendMode value1, CIDifferenceBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIDifferenceBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIDifferenceBlendMode alloc() {
			return new CIDifferenceBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIDiffusion : IEquatable<CIDiffusion> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIDiffusion;
		public static implicit operator CIFilter( CIDiffusion value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIDiffusion value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIDiffusion value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIDiffusion value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIDiffusion?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIDiffusion value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIDiffusion value1, CIDiffusion value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIDiffusion value1, CIDiffusion value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIDiffusion( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIDiffusion alloc() {
			return new CIDiffusion( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIDiscBlur : IEquatable<CIDiscBlur> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIDiscBlur;
		public static implicit operator CIFilter( CIDiscBlur value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIDiscBlur value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIDiscBlur value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIDiscBlur value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIDiscBlur?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIDiscBlur value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIDiscBlur value1, CIDiscBlur value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIDiscBlur value1, CIDiscBlur value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIDiscBlur( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIDiscBlur alloc() {
			return new CIDiscBlur( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIDisintegrateWithMaskTransition : IEquatable<CIDisintegrateWithMaskTransition> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIDisintegrateWithMaskTransition;
		public static implicit operator CIFilter( CIDisintegrateWithMaskTransition value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIDisintegrateWithMaskTransition value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIDisintegrateWithMaskTransition value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIDisintegrateWithMaskTransition value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIDisintegrateWithMaskTransition?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIDisintegrateWithMaskTransition value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIDisintegrateWithMaskTransition value1, CIDisintegrateWithMaskTransition value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIDisintegrateWithMaskTransition value1, CIDisintegrateWithMaskTransition value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIDisintegrateWithMaskTransition( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIDisintegrateWithMaskTransition alloc() {
			return new CIDisintegrateWithMaskTransition( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIDisplacementDistortion : IEquatable<CIDisplacementDistortion> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIDisplacementDistortion;
		public static implicit operator CIFilter( CIDisplacementDistortion value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIDisplacementDistortion value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIDisplacementDistortion value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIDisplacementDistortion value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIDisplacementDistortion?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIDisplacementDistortion value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIDisplacementDistortion value1, CIDisplacementDistortion value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIDisplacementDistortion value1, CIDisplacementDistortion value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIDisplacementDistortion( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIDisplacementDistortion alloc() {
			return new CIDisplacementDistortion( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIDisplaceWithNoise : IEquatable<CIDisplaceWithNoise> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIDisplaceWithNoise;
		public static implicit operator CIFilter( CIDisplaceWithNoise value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIDisplaceWithNoise value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIDisplaceWithNoise value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIDisplaceWithNoise value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIDisplaceWithNoise?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIDisplaceWithNoise value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIDisplaceWithNoise value1, CIDisplaceWithNoise value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIDisplaceWithNoise value1, CIDisplaceWithNoise value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIDisplaceWithNoise( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIDisplaceWithNoise alloc() {
			return new CIDisplaceWithNoise( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIDissolveTransition : IEquatable<CIDissolveTransition> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIDissolveTransition;
		public static implicit operator CIFilter( CIDissolveTransition value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIDissolveTransition value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIDissolveTransition value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIDissolveTransition value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIDissolveTransition?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIDissolveTransition value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIDissolveTransition value1, CIDissolveTransition value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIDissolveTransition value1, CIDissolveTransition value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIDissolveTransition( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIDissolveTransition alloc() {
			return new CIDissolveTransition( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIDistanceFieldFromMask : IEquatable<CIDistanceFieldFromMask> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIDistanceFieldFromMask;
		public static implicit operator CIFilter( CIDistanceFieldFromMask value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIDistanceFieldFromMask value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIDistanceFieldFromMask value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIDistanceFieldFromMask value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIDistanceFieldFromMask?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIDistanceFieldFromMask value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIDistanceFieldFromMask value1, CIDistanceFieldFromMask value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIDistanceFieldFromMask value1, CIDistanceFieldFromMask value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIDistanceFieldFromMask( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIDistanceFieldFromMask alloc() {
			return new CIDistanceFieldFromMask( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIDotScreen : IEquatable<CIDotScreen> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIDotScreen;
		public static implicit operator CIFilter( CIDotScreen value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIDotScreen value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIDotScreen value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIDotScreen value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIDotScreen?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIDotScreen value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIDotScreen value1, CIDotScreen value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIDotScreen value1, CIDotScreen value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIDotScreen( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIDotScreen alloc() {
			return new CIDotScreen( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIEdge : IEquatable<CIEdge> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIEdge;
		public static implicit operator NSObject( CIEdge value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIEdge value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIEdge value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIEdge?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIEdge value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIEdge value1, CIEdge value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIEdge value1, CIEdge value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIEdge( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIEdge alloc() {
			return new CIEdge( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject edgeWithSource__dest__( NObjective.RuntimeObject source, NObjective.RuntimeObject unnamedParameter, NObjective.RuntimeObject dest, NObjective.RuntimeObject unnamedParameter2 ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.edgeWithSource__dest__( ClassHandle, CachedSelectors.edgeWithSource__dest__, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), source, unnamedParameter, dest, unnamedParameter2 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject destKey() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.destKey( Handle, CachedSelectors.destKey, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject destNode() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.destNode( Handle, CachedSelectors.destNode, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void encodeWithCoder_( NSCoder coder ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeWithCoder_( Handle, CachedSelectors.encodeWithCoder_, out ___occuredException, sizeof( NSCoder ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject initWithCoder_( NObjective.RuntimeObject coder ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCoder_( Handle, CachedSelectors.initWithCoder_, out ___occuredException, sizeof( NObjective.RuntimeObject ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithSource__dest__( NObjective.RuntimeObject source, NObjective.RuntimeObject unnamedParameter, NObjective.RuntimeObject dest, NObjective.RuntimeObject unnamedParameter2 ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithSource__dest__( Handle, CachedSelectors.initWithSource__dest__, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), source, unnamedParameter, dest, unnamedParameter2 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject sourceKey() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.sourceKey( Handle, CachedSelectors.sourceKey, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject sourceNode() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.sourceNode( Handle, CachedSelectors.sourceNode, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr destKey( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr destNode( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr edgeWithSource__dest__( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject source, NObjective.RuntimeObject unnamedParameter, NObjective.RuntimeObject dest, NObjective.RuntimeObject unnamedParameter2 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSCoder coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithSource__dest__( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject source, NObjective.RuntimeObject unnamedParameter, NObjective.RuntimeObject dest, NObjective.RuntimeObject unnamedParameter2 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr sourceKey( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr sourceNode( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector destKey = "destKey";
			public static readonly Selector destNode = "destNode";
			public static readonly Selector edgeWithSource__dest__ = "edgeWithSource::dest::";
			public static readonly Selector encodeWithCoder_ = "encodeWithCoder:";
			public static readonly Selector initWithCoder_ = "initWithCoder:";
			public static readonly Selector initWithSource__dest__ = "initWithSource::dest::";
			public static readonly Selector sourceKey = "sourceKey";
			public static readonly Selector sourceNode = "sourceNode";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIEdges : IEquatable<CIEdges> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIEdges;
		public static implicit operator CIFilter( CIEdges value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIEdges value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIEdges value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIEdges value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIEdges?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIEdges value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIEdges value1, CIEdges value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIEdges value1, CIEdges value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIEdges( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIEdges alloc() {
			return new CIEdges( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIEdgeWork : IEquatable<CIEdgeWork> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIEdgeWork;
		public static implicit operator CIFilter( CIEdgeWork value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIEdgeWork value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIEdgeWork value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIEdgeWork value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIEdgeWork?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIEdgeWork value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIEdgeWork value1, CIEdgeWork value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIEdgeWork value1, CIEdgeWork value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIEdgeWork( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIEdgeWork alloc() {
			return new CIEdgeWork( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIEightfoldReflectedTile : IEquatable<CIEightfoldReflectedTile> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIEightfoldReflectedTile;
		public static implicit operator CIFilter( CIEightfoldReflectedTile value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIEightfoldReflectedTile value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIEightfoldReflectedTile value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIEightfoldReflectedTile value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIEightfoldReflectedTile?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIEightfoldReflectedTile value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIEightfoldReflectedTile value1, CIEightfoldReflectedTile value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIEightfoldReflectedTile value1, CIEightfoldReflectedTile value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIEightfoldReflectedTile( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIEightfoldReflectedTile alloc() {
			return new CIEightfoldReflectedTile( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIEmboss : IEquatable<CIEmboss> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIEmboss;
		public static implicit operator CIFilter( CIEmboss value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIEmboss value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIEmboss value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIEmboss value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIEmboss?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIEmboss value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIEmboss value1, CIEmboss value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIEmboss value1, CIEmboss value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIEmboss( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIEmboss alloc() {
			return new CIEmboss( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIExclusionBlendMode : IEquatable<CIExclusionBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIExclusionBlendMode;
		public static implicit operator CIFilter( CIExclusionBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIExclusionBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIExclusionBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIExclusionBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIExclusionBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIExclusionBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIExclusionBlendMode value1, CIExclusionBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIExclusionBlendMode value1, CIExclusionBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIExclusionBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIExclusionBlendMode alloc() {
			return new CIExclusionBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIExposureAdjust : IEquatable<CIExposureAdjust> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIExposureAdjust;
		public static implicit operator CIFilter( CIExposureAdjust value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIExposureAdjust value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIExposureAdjust value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIExposureAdjust value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIExposureAdjust?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIExposureAdjust value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIExposureAdjust value1, CIExposureAdjust value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIExposureAdjust value1, CIExposureAdjust value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIExposureAdjust( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIExposureAdjust alloc() {
			return new CIExposureAdjust( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIFalseColor : IEquatable<CIFalseColor> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFalseColor;
		public static implicit operator CIFilter( CIFalseColor value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIFalseColor value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFalseColor value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFalseColor value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFalseColor?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFalseColor value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFalseColor value1, CIFalseColor value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFalseColor value1, CIFalseColor value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFalseColor( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFalseColor alloc() {
			return new CIFalseColor( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIFilter : IEquatable<CIFilter> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFilter;
		public static implicit operator NSObject( CIFilter value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFilter value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFilter value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFilter?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFilter value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFilter value1, CIFilter value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFilter value1, CIFilter value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFilter( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFilter alloc() {
			return new CIFilter( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject allCategories_( char categories ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.allCategories_( ClassHandle, CachedSelectors.allCategories_, out ___occuredException, sizeof( char ), categories );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject filter() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filter( ClassHandle, CachedSelectors.filter, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NSArray filterNamesInCategories_( NSArray categories ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterNamesInCategories_( ClassHandle, CachedSelectors.filterNamesInCategories_, out ___occuredException, sizeof( NSArray ), categories );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NSArray( ___result );
		}
		unsafe public static NSArray filterNamesInCategory_( string category ) {
			RuntimeObject ___occuredException;
			var ___wrappedcategory = Runtime.CreateStringProxy( category );
			var ___result = NativeMethods.filterNamesInCategory_( ClassHandle, CachedSelectors.filterNamesInCategory_, out ___occuredException, sizeof( IntPtr ), ___wrappedcategory );
			Runtime.ReleaseNativeObject( ___wrappedcategory );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NSArray( ___result );
		}
		unsafe public static CIFilter filterWithImageData_options_( NSData data, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterWithImageData_options_( ClassHandle, CachedSelectors.filterWithImageData_options_, out ___occuredException, sizeof( NSData ) + sizeof( NSDictionary ), data, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIFilter( ___result );
		}
		unsafe public static CIFilter filterWithImageURL_options_( NSURL url, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterWithImageURL_options_( ClassHandle, CachedSelectors.filterWithImageURL_options_, out ___occuredException, sizeof( NSURL ) + sizeof( NSDictionary ), url, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIFilter( ___result );
		}
		unsafe public static CIFilter filterWithName_( string name ) {
			RuntimeObject ___occuredException;
			var ___wrappedname = Runtime.CreateStringProxy( name );
			var ___result = NativeMethods.filterWithName_( ClassHandle, CachedSelectors.filterWithName_, out ___occuredException, sizeof( IntPtr ), ___wrappedname );
			Runtime.ReleaseNativeObject( ___wrappedname );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIFilter( ___result );
		}
		unsafe public static NObjective.RuntimeObject filterWithName_compatibilityVersion_( NObjective.RuntimeObject name, int compatibilityVersion ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterWithName_compatibilityVersion_( ClassHandle, CachedSelectors.filterWithName_compatibilityVersion_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( int ), name, compatibilityVersion );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject filterWithName_compatibilityVersion_keysAndValues_( NObjective.RuntimeObject name, int compatibilityVersion, NObjective.RuntimeObject keysAndValues ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterWithName_compatibilityVersion_keysAndValues_( ClassHandle, CachedSelectors.filterWithName_compatibilityVersion_keysAndValues_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( int ) + sizeof( NObjective.RuntimeObject ), name, compatibilityVersion, keysAndValues );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		public static CIFilter filterWithName_keysAndValues_( string name, NObjective.RuntimeObject keysAndValues, params object[] variableArguments ) {
			return new CIFilter( ClassHandle.InvokeObjectFast( CachedSelectors.filterWithName_keysAndValues_, CachedEncodings.__19F8A84A, name, keysAndValues, variableArguments ) );
		}
		unsafe public static void initialize() {
			RuntimeObject ___occuredException;
			NativeMethods.initialize( ClassHandle, CachedSelectors.initialize, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static string localizedDescriptionForFilterName_( string name ) {
			RuntimeObject ___occuredException;
			var ___wrappedname = Runtime.CreateStringProxy( name );
			var ___result = NativeMethods.localizedDescriptionForFilterName_( ClassHandle, CachedSelectors.localizedDescriptionForFilterName_, out ___occuredException, sizeof( IntPtr ), ___wrappedname );
			Runtime.ReleaseNativeObject( ___wrappedname );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return Runtime.UnwrapNSString( ___result );
		}
		unsafe public static string localizedNameForCategory_( string category ) {
			RuntimeObject ___occuredException;
			var ___wrappedcategory = Runtime.CreateStringProxy( category );
			var ___result = NativeMethods.localizedNameForCategory_( ClassHandle, CachedSelectors.localizedNameForCategory_, out ___occuredException, sizeof( IntPtr ), ___wrappedcategory );
			Runtime.ReleaseNativeObject( ___wrappedcategory );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return Runtime.UnwrapNSString( ___result );
		}
		unsafe public static string localizedNameForFilterName_( string name ) {
			RuntimeObject ___occuredException;
			var ___wrappedname = Runtime.CreateStringProxy( name );
			var ___result = NativeMethods.localizedNameForFilterName_( ClassHandle, CachedSelectors.localizedNameForFilterName_, out ___occuredException, sizeof( IntPtr ), ___wrappedname );
			Runtime.ReleaseNativeObject( ___wrappedname );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return Runtime.UnwrapNSString( ___result );
		}
		unsafe public static NSURL localizedReferenceDocumentationForFilterName_( string name ) {
			RuntimeObject ___occuredException;
			var ___wrappedname = Runtime.CreateStringProxy( name );
			var ___result = NativeMethods.localizedReferenceDocumentationForFilterName_( ClassHandle, CachedSelectors.localizedReferenceDocumentationForFilterName_, out ___occuredException, sizeof( IntPtr ), ___wrappedname );
			Runtime.ReleaseNativeObject( ___wrappedname );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NSURL( ___result );
		}
		unsafe public static void registerFilterName_constructor_classAttributes_( string name, NObjective.RuntimeObject constructor, NSDictionary classAttributes ) {
			RuntimeObject ___occuredException;
			var ___wrappedname = Runtime.CreateStringProxy( name );
			NativeMethods.registerFilterName_constructor_classAttributes_( ClassHandle, CachedSelectors.registerFilterName_constructor_classAttributes_, out ___occuredException, sizeof( IntPtr ) + sizeof( NObjective.RuntimeObject ) + sizeof( NSDictionary ), ___wrappedname, constructor, classAttributes );
			Runtime.ReleaseNativeObject( ___wrappedname );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		public CIImage apply_( CIKernel apply, params object[] variableArguments ) {
			return new CIImage( Handle.InvokeObjectFast( CachedSelectors.apply_, CachedEncodings.__6F587D11, apply, variableArguments ) );
		}
		unsafe public CIImage apply_arguments_options_( CIKernel apply, NSArray arguments, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.apply_arguments_options_( Handle, CachedSelectors.apply_arguments_options_, out ___occuredException, sizeof( CIKernel ) + sizeof( NSArray ) + sizeof( NSDictionary ), apply, arguments, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public NSDictionary attributes() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.attributes( Handle, CachedSelectors.attributes, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NSDictionary( ___result );
		}
		unsafe public int compatibilityVersion() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.compatibilityVersion( Handle, CachedSelectors.compatibilityVersion, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject customAttributes() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.customAttributes( Handle, CachedSelectors.customAttributes, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public char enabled() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.enabled( Handle, CachedSelectors.enabled, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void encodeWithCoder_( NSCoder coder ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeWithCoder_( Handle, CachedSelectors.encodeWithCoder_, out ___occuredException, sizeof( NSCoder ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject exposedBindings() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.exposedBindings( Handle, CachedSelectors.exposedBindings, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject filterClassDescription() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterClassDescription( Handle, CachedSelectors.filterClassDescription, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCoder_( NObjective.RuntimeObject coder ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCoder_( Handle, CachedSelectors.initWithCoder_, out ___occuredException, sizeof( NObjective.RuntimeObject ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCompatibilityVersion_( int version ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCompatibilityVersion_( Handle, CachedSelectors.initWithCompatibilityVersion_, out ___occuredException, sizeof( int ), version );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NSArray inputKeys() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.inputKeys( Handle, CachedSelectors.inputKeys, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NSArray( ___result );
		}
		unsafe public bool isEnabled() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isEnabled( Handle, CachedSelectors.isEnabled, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject localizedNameForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.localizedNameForKey_( Handle, CachedSelectors.localizedNameForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject name() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.name( Handle, CachedSelectors.name, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NSArray outputKeys() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputKeys( Handle, CachedSelectors.outputKeys, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NSArray( ___result );
		}
		unsafe public void setDefaults() {
			RuntimeObject ___occuredException;
			NativeMethods.setDefaults( Handle, CachedSelectors.setDefaults, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setEnabled_( char enabled ) {
			RuntimeObject ___occuredException;
			NativeMethods.setEnabled_( Handle, CachedSelectors.setEnabled_, out ___occuredException, sizeof( char ), enabled );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setIdentity() {
			RuntimeObject ___occuredException;
			NativeMethods.setIdentity( Handle, CachedSelectors.setIdentity, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setName_( NObjective.RuntimeObject name ) {
			RuntimeObject ___occuredException;
			NativeMethods.setName_( Handle, CachedSelectors.setName_, out ___occuredException, sizeof( NObjective.RuntimeObject ), name );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setOption_forKey_( NObjective.RuntimeObject option, NObjective.RuntimeObject forKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setOption_forKey_( Handle, CachedSelectors.setOption_forKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), option, forKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setUserInfo_( NObjective.RuntimeObject info ) {
			RuntimeObject ___occuredException;
			NativeMethods.setUserInfo_( Handle, CachedSelectors.setUserInfo_, out ___occuredException, sizeof( NObjective.RuntimeObject ), info );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setValue_forKey_( NObjective.RuntimeObject value, NObjective.RuntimeObject forKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forKey_( Handle, CachedSelectors.setValue_forKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setValue_forUndefinedKey_( NObjective.RuntimeObject value, NObjective.RuntimeObject forUndefinedKey ) {
			RuntimeObject ___occuredException;
			NativeMethods.setValue_forUndefinedKey_( Handle, CachedSelectors.setValue_forUndefinedKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forUndefinedKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject userInfo() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.userInfo( Handle, CachedSelectors.userInfo, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject valueForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForKey_( Handle, CachedSelectors.valueForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject valueForUndefinedKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForUndefinedKey_( Handle, CachedSelectors.valueForUndefinedKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr allCategories_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, char categories );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr apply_arguments_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CIKernel apply, NSArray arguments, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr attributes( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int compatibilityVersion( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr customAttributes( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char enabled( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSCoder coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr exposedBindings( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filter( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterClassDescription( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterNamesInCategories_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSArray categories );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterNamesInCategory_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr category );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithImageData_options_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSData data, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithImageURL_options_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSURL url, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithName_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithName_compatibilityVersion_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name, int compatibilityVersion );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithName_compatibilityVersion_keysAndValues_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name, int compatibilityVersion, NObjective.RuntimeObject keysAndValues );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void initialize( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCompatibilityVersion_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int version );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr inputKeys( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isEnabled( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr localizedDescriptionForFilterName_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr localizedNameForCategory_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr category );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr localizedNameForFilterName_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr localizedNameForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr localizedReferenceDocumentationForFilterName_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr name( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputKeys( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void registerFilterName_constructor_classAttributes_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr name, NObjective.RuntimeObject constructor, NSDictionary classAttributes );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setDefaults( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setEnabled_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, char enabled );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setIdentity( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setName_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setOption_forKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject option, NObjective.RuntimeObject forKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setUserInfo_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject info );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setValue_forUndefinedKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forUndefinedKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr userInfo( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForUndefinedKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
		}
		static internal class CachedEncodings {
			public static readonly RuntimeMethodEncoding __19F8A84A = "@16@0:4@8@12";
			public static readonly RuntimeMethodEncoding __6F587D11 = "@12@0:4@8";
		}
		static internal class CachedSelectors {
			public static readonly Selector allCategories_ = "allCategories:";
			public static readonly Selector apply_ = "apply:";
			public static readonly Selector apply_arguments_options_ = "apply:arguments:options:";
			public static readonly Selector attributes = "attributes";
			public static readonly Selector compatibilityVersion = "compatibilityVersion";
			public static readonly Selector customAttributes = "customAttributes";
			public static readonly Selector enabled = "enabled";
			public static readonly Selector encodeWithCoder_ = "encodeWithCoder:";
			public static readonly Selector exposedBindings = "exposedBindings";
			public static readonly Selector filter = "filter";
			public static readonly Selector filterClassDescription = "filterClassDescription";
			public static readonly Selector filterNamesInCategories_ = "filterNamesInCategories:";
			public static readonly Selector filterNamesInCategory_ = "filterNamesInCategory:";
			public static readonly Selector filterWithImageData_options_ = "filterWithImageData:options:";
			public static readonly Selector filterWithImageURL_options_ = "filterWithImageURL:options:";
			public static readonly Selector filterWithName_ = "filterWithName:";
			public static readonly Selector filterWithName_compatibilityVersion_ = "filterWithName:compatibilityVersion:";
			public static readonly Selector filterWithName_compatibilityVersion_keysAndValues_ = "filterWithName:compatibilityVersion:keysAndValues:";
			public static readonly Selector filterWithName_keysAndValues_ = "filterWithName:keysAndValues:";
			public static readonly Selector initialize = "initialize";
			public static readonly Selector initWithCoder_ = "initWithCoder:";
			public static readonly Selector initWithCompatibilityVersion_ = "initWithCompatibilityVersion:";
			public static readonly Selector inputKeys = "inputKeys";
			public static readonly Selector isEnabled = "isEnabled";
			public static readonly Selector localizedDescriptionForFilterName_ = "localizedDescriptionForFilterName:";
			public static readonly Selector localizedNameForCategory_ = "localizedNameForCategory:";
			public static readonly Selector localizedNameForFilterName_ = "localizedNameForFilterName:";
			public static readonly Selector localizedNameForKey_ = "localizedNameForKey:";
			public static readonly Selector localizedReferenceDocumentationForFilterName_ = "localizedReferenceDocumentationForFilterName:";
			public static readonly Selector name = "name";
			public static readonly Selector outputKeys = "outputKeys";
			public static readonly Selector registerFilterName_constructor_classAttributes_ = "registerFilterName:constructor:classAttributes:";
			public static readonly Selector setDefaults = "setDefaults";
			public static readonly Selector setEnabled_ = "setEnabled:";
			public static readonly Selector setIdentity = "setIdentity";
			public static readonly Selector setName_ = "setName:";
			public static readonly Selector setOption_forKey_ = "setOption:forKey:";
			public static readonly Selector setUserInfo_ = "setUserInfo:";
			public static readonly Selector setValue_forKey_ = "setValue:forKey:";
			public static readonly Selector setValue_forUndefinedKey_ = "setValue:forUndefinedKey:";
			public static readonly Selector userInfo = "userInfo";
			public static readonly Selector valueForKey_ = "valueForKey:";
			public static readonly Selector valueForUndefinedKey_ = "valueForUndefinedKey:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIFilterClassDescription : IEquatable<CIFilterClassDescription> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFilterClassDescription;
		public static implicit operator NSObject( CIFilterClassDescription value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFilterClassDescription value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFilterClassDescription value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFilterClassDescription?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFilterClassDescription value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFilterClassDescription value1, CIFilterClassDescription value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFilterClassDescription value1, CIFilterClassDescription value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFilterClassDescription( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFilterClassDescription alloc() {
			return new CIFilterClassDescription( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject classDescriptionForClass_( NObjective.RuntimeClass @class ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.classDescriptionForClass_( ClassHandle, CachedSelectors.classDescriptionForClass_, out ___occuredException, sizeof( NObjective.RuntimeClass ), @class );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject attributes() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.attributes( Handle, CachedSelectors.attributes, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithClass_( NObjective.RuntimeClass @class ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithClass_( Handle, CachedSelectors.initWithClass_, out ___occuredException, sizeof( NObjective.RuntimeClass ), @class );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject inputKeys() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.inputKeys( Handle, CachedSelectors.inputKeys, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputKeys() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputKeys( Handle, CachedSelectors.outputKeys, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr attributes( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr classDescriptionForClass_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeClass @class );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithClass_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeClass @class );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr inputKeys( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputKeys( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector attributes = "attributes";
			public static readonly Selector classDescriptionForClass_ = "classDescriptionForClass:";
			public static readonly Selector initWithClass_ = "initWithClass:";
			public static readonly Selector inputKeys = "inputKeys";
			public static readonly Selector outputKeys = "outputKeys";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIFilterGenerator : IEquatable<CIFilterGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFilterGenerator;
		public static implicit operator NSObject( CIFilterGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFilterGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFilterGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFilterGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFilterGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFilterGenerator value1, CIFilterGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFilterGenerator value1, CIFilterGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFilterGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFilterGenerator alloc() {
			return new CIFilterGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static CIFilterGenerator filterGenerator() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterGenerator( ClassHandle, CachedSelectors.filterGenerator, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIFilterGenerator( ___result );
		}
		unsafe public static CIFilterGenerator filterGeneratorWithContentsOfURL_( NSURL url ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterGeneratorWithContentsOfURL_( ClassHandle, CachedSelectors.filterGeneratorWithContentsOfURL_, out ___occuredException, sizeof( NSURL ), url );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIFilterGenerator( ___result );
		}
		unsafe public NSDictionary classAttributes() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.classAttributes( Handle, CachedSelectors.classAttributes, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NSDictionary( ___result );
		}
		unsafe public NObjective.RuntimeObject connections() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.connections( Handle, CachedSelectors.connections, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject connectionsForObject_( NObjective.RuntimeObject @object ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.connectionsForObject_( Handle, CachedSelectors.connectionsForObject_, out ___occuredException, sizeof( NObjective.RuntimeObject ), @object );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void connectObject_withKey_toObject_withKey_( NObjective.RuntimeObject @object, string withKey, NObjective.RuntimeObject toObject, string withKey2 ) {
			RuntimeObject ___occuredException;
			var ___wrappedwithKey = Runtime.CreateStringProxy( withKey );
			var ___wrappedwithKey2 = Runtime.CreateStringProxy( withKey2 );
			NativeMethods.connectObject_withKey_toObject_withKey_( Handle, CachedSelectors.connectObject_withKey_toObject_withKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( IntPtr ) + sizeof( NObjective.RuntimeObject ) + sizeof( IntPtr ), @object, ___wrappedwithKey, toObject, ___wrappedwithKey2 );
			Runtime.ReleaseNativeObject( ___wrappedwithKey );
			Runtime.ReleaseNativeObject( ___wrappedwithKey2 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject connectObject_withKey_toObject_withKey_userInfo_( NObjective.RuntimeObject @object, NObjective.RuntimeObject withKey, NObjective.RuntimeObject toObject, NObjective.RuntimeObject withKey2, NObjective.RuntimeObject userInfo ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.connectObject_withKey_toObject_withKey_userInfo_( Handle, CachedSelectors.connectObject_withKey_toObject_withKey_userInfo_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), @object, withKey, toObject, withKey2, userInfo );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void copyCustomAttributes_( NObjective.RuntimeObject attributes ) {
			RuntimeObject ___occuredException;
			NativeMethods.copyCustomAttributes_( Handle, CachedSelectors.copyCustomAttributes_, out ___occuredException, sizeof( NObjective.RuntimeObject ), attributes );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject customAttributes() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.customAttributes( Handle, CachedSelectors.customAttributes, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject decodedValueForKey_ofClass_fromDictionary_( NObjective.RuntimeObject key, NObjective.RuntimeObject ofClass, NObjective.RuntimeObject fromDictionary ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.decodedValueForKey_ofClass_fromDictionary_( Handle, CachedSelectors.decodedValueForKey_ofClass_fromDictionary_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), key, ofClass, fromDictionary );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void disconnectObject_withKey_toObject_withKey_( NObjective.RuntimeObject @object, string withKey, NObjective.RuntimeObject toObject, string withKey2 ) {
			RuntimeObject ___occuredException;
			var ___wrappedwithKey = Runtime.CreateStringProxy( withKey );
			var ___wrappedwithKey2 = Runtime.CreateStringProxy( withKey2 );
			NativeMethods.disconnectObject_withKey_toObject_withKey_( Handle, CachedSelectors.disconnectObject_withKey_toObject_withKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( IntPtr ) + sizeof( NObjective.RuntimeObject ) + sizeof( IntPtr ), @object, ___wrappedwithKey, toObject, ___wrappedwithKey2 );
			Runtime.ReleaseNativeObject( ___wrappedwithKey );
			Runtime.ReleaseNativeObject( ___wrappedwithKey2 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void encodeValue_forKey_intoDictionary_( NObjective.RuntimeObject value, NObjective.RuntimeObject forKey, NObjective.RuntimeObject intoDictionary ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeValue_forKey_intoDictionary_( Handle, CachedSelectors.encodeValue_forKey_intoDictionary_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), value, forKey, intoDictionary );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void encodeWithCoder_( NSCoder coder ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeWithCoder_( Handle, CachedSelectors.encodeWithCoder_, out ___occuredException, sizeof( NSCoder ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NSDictionary exportedKeys() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.exportedKeys( Handle, CachedSelectors.exportedKeys, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NSDictionary( ___result );
		}
		unsafe public void exportKey_fromObject_withName_( string key, NObjective.RuntimeObject fromObject, string withName ) {
			RuntimeObject ___occuredException;
			var ___wrappedkey = Runtime.CreateStringProxy( key );
			var ___wrappedwithName = Runtime.CreateStringProxy( withName );
			NativeMethods.exportKey_fromObject_withName_( Handle, CachedSelectors.exportKey_fromObject_withName_, out ___occuredException, sizeof( IntPtr ) + sizeof( NObjective.RuntimeObject ) + sizeof( IntPtr ), ___wrappedkey, fromObject, ___wrappedwithName );
			Runtime.ReleaseNativeObject( ___wrappedkey );
			Runtime.ReleaseNativeObject( ___wrappedwithName );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public CIFilter filter() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filter( Handle, CachedSelectors.filter, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIFilter( ___result );
		}
		unsafe public NObjective.RuntimeObject filterWithName_( NObjective.RuntimeObject name ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterWithName_( Handle, CachedSelectors.filterWithName_, out ___occuredException, sizeof( NObjective.RuntimeObject ), name );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCoder_( NObjective.RuntimeObject coder ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCoder_( Handle, CachedSelectors.initWithCoder_, out ___occuredException, sizeof( NObjective.RuntimeObject ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithContentsOfURL_( NSURL url ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithContentsOfURL_( Handle, CachedSelectors.initWithContentsOfURL_, out ___occuredException, sizeof( NSURL ), url );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void registerFilterName_( string name ) {
			RuntimeObject ___occuredException;
			var ___wrappedname = Runtime.CreateStringProxy( name );
			NativeMethods.registerFilterName_( Handle, CachedSelectors.registerFilterName_, out ___occuredException, sizeof( IntPtr ), ___wrappedname );
			Runtime.ReleaseNativeObject( ___wrappedname );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void removeConnection_( NObjective.RuntimeObject connection ) {
			RuntimeObject ___occuredException;
			NativeMethods.removeConnection_( Handle, CachedSelectors.removeConnection_, out ___occuredException, sizeof( NObjective.RuntimeObject ), connection );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void removeExportedKey_( string key ) {
			RuntimeObject ___occuredException;
			var ___wrappedkey = Runtime.CreateStringProxy( key );
			NativeMethods.removeExportedKey_( Handle, CachedSelectors.removeExportedKey_, out ___occuredException, sizeof( IntPtr ), ___wrappedkey );
			Runtime.ReleaseNativeObject( ___wrappedkey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setAttributes_forExportedKey_( NSDictionary attributes, string forExportedKey ) {
			RuntimeObject ___occuredException;
			var ___wrappedforExportedKey = Runtime.CreateStringProxy( forExportedKey );
			NativeMethods.setAttributes_forExportedKey_( Handle, CachedSelectors.setAttributes_forExportedKey_, out ___occuredException, sizeof( NSDictionary ) + sizeof( IntPtr ), attributes, ___wrappedforExportedKey );
			Runtime.ReleaseNativeObject( ___wrappedforExportedKey );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setClassAttributes_( NSDictionary attributes ) {
			RuntimeObject ___occuredException;
			NativeMethods.setClassAttributes_( Handle, CachedSelectors.setClassAttributes_, out ___occuredException, sizeof( NSDictionary ), attributes );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setUserInfo_( NObjective.RuntimeObject info ) {
			RuntimeObject ___occuredException;
			NativeMethods.setUserInfo_( Handle, CachedSelectors.setUserInfo_, out ___occuredException, sizeof( NObjective.RuntimeObject ), info );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void sortConnections() {
			RuntimeObject ___occuredException;
			NativeMethods.sortConnections( Handle, CachedSelectors.sortConnections, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject userInfo() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.userInfo( Handle, CachedSelectors.userInfo, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public bool writeToURL_atomically_( NSURL url, bool atomically ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.writeToURL_atomically_( Handle, CachedSelectors.writeToURL_atomically_, out ___occuredException, sizeof( NSURL ) + sizeof( bool ), url, atomically );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr classAttributes( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr connections( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr connectionsForObject_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @object );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void connectObject_withKey_toObject_withKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @object, IntPtr withKey, NObjective.RuntimeObject toObject, IntPtr withKey2 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr connectObject_withKey_toObject_withKey_userInfo_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @object, NObjective.RuntimeObject withKey, NObjective.RuntimeObject toObject, NObjective.RuntimeObject withKey2, NObjective.RuntimeObject userInfo );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void copyCustomAttributes_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject attributes );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr customAttributes( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr decodedValueForKey_ofClass_fromDictionary_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key, NObjective.RuntimeObject ofClass, NObjective.RuntimeObject fromDictionary );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void disconnectObject_withKey_toObject_withKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @object, IntPtr withKey, NObjective.RuntimeObject toObject, IntPtr withKey2 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeValue_forKey_intoDictionary_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value, NObjective.RuntimeObject forKey, NObjective.RuntimeObject intoDictionary );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSCoder coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr exportedKeys( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void exportKey_fromObject_withName_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr key, NObjective.RuntimeObject fromObject, IntPtr withName );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filter( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterGenerator( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterGeneratorWithContentsOfURL_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSURL url );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithName_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithContentsOfURL_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSURL url );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void registerFilterName_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void removeConnection_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject connection );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void removeExportedKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setAttributes_forExportedKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSDictionary attributes, IntPtr forExportedKey );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setClassAttributes_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSDictionary attributes );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setUserInfo_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject info );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void sortConnections( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr userInfo( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool writeToURL_atomically_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSURL url, bool atomically );
		}
		static internal class CachedSelectors {
			public static readonly Selector classAttributes = "classAttributes";
			public static readonly Selector connections = "connections";
			public static readonly Selector connectionsForObject_ = "connectionsForObject:";
			public static readonly Selector connectObject_withKey_toObject_withKey_ = "connectObject:withKey:toObject:withKey:";
			public static readonly Selector connectObject_withKey_toObject_withKey_userInfo_ = "connectObject:withKey:toObject:withKey:userInfo:";
			public static readonly Selector copyCustomAttributes_ = "copyCustomAttributes:";
			public static readonly Selector customAttributes = "customAttributes";
			public static readonly Selector decodedValueForKey_ofClass_fromDictionary_ = "decodedValueForKey:ofClass:fromDictionary:";
			public static readonly Selector disconnectObject_withKey_toObject_withKey_ = "disconnectObject:withKey:toObject:withKey:";
			public static readonly Selector encodeValue_forKey_intoDictionary_ = "encodeValue:forKey:intoDictionary:";
			public static readonly Selector encodeWithCoder_ = "encodeWithCoder:";
			public static readonly Selector exportedKeys = "exportedKeys";
			public static readonly Selector exportKey_fromObject_withName_ = "exportKey:fromObject:withName:";
			public static readonly Selector filter = "filter";
			public static readonly Selector filterGenerator = "filterGenerator";
			public static readonly Selector filterGeneratorWithContentsOfURL_ = "filterGeneratorWithContentsOfURL:";
			public static readonly Selector filterWithName_ = "filterWithName:";
			public static readonly Selector initWithCoder_ = "initWithCoder:";
			public static readonly Selector initWithContentsOfURL_ = "initWithContentsOfURL:";
			public static readonly Selector registerFilterName_ = "registerFilterName:";
			public static readonly Selector removeConnection_ = "removeConnection:";
			public static readonly Selector removeExportedKey_ = "removeExportedKey:";
			public static readonly Selector setAttributes_forExportedKey_ = "setAttributes:forExportedKey:";
			public static readonly Selector setClassAttributes_ = "setClassAttributes:";
			public static readonly Selector setUserInfo_ = "setUserInfo:";
			public static readonly Selector sortConnections = "sortConnections";
			public static readonly Selector userInfo = "userInfo";
			public static readonly Selector writeToURL_atomically_ = "writeToURL:atomically:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIFilterGeneratorCIFilter : IEquatable<CIFilterGeneratorCIFilter> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFilterGeneratorCIFilter;
		public static implicit operator CIFilter( CIFilterGeneratorCIFilter value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIFilterGeneratorCIFilter value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFilterGeneratorCIFilter value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFilterGeneratorCIFilter value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFilterGeneratorCIFilter?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFilterGeneratorCIFilter value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFilterGeneratorCIFilter value1, CIFilterGeneratorCIFilter value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFilterGeneratorCIFilter value1, CIFilterGeneratorCIFilter value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFilterGeneratorCIFilter( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFilterGeneratorCIFilter alloc() {
			return new CIFilterGeneratorCIFilter( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject filterWithGenerator_( NObjective.RuntimeObject generator ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterWithGenerator_( ClassHandle, CachedSelectors.filterWithGenerator_, out ___occuredException, sizeof( NObjective.RuntimeObject ), generator );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithGenerator_( NObjective.RuntimeObject generator ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithGenerator_( Handle, CachedSelectors.initWithGenerator_, out ___occuredException, sizeof( NObjective.RuntimeObject ), generator );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void propagateConnections() {
			RuntimeObject ___occuredException;
			NativeMethods.propagateConnections( Handle, CachedSelectors.propagateConnections, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithGenerator_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject generator );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithGenerator_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject generator );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void propagateConnections( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector filterWithGenerator_ = "filterWithGenerator:";
			public static readonly Selector initWithGenerator_ = "initWithGenerator:";
			public static readonly Selector propagateConnections = "propagateConnections";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIFilterGeneratorConnection : IEquatable<CIFilterGeneratorConnection> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFilterGeneratorConnection;
		public static implicit operator NSObject( CIFilterGeneratorConnection value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFilterGeneratorConnection value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFilterGeneratorConnection value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFilterGeneratorConnection?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFilterGeneratorConnection value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFilterGeneratorConnection value1, CIFilterGeneratorConnection value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFilterGeneratorConnection value1, CIFilterGeneratorConnection value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFilterGeneratorConnection( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFilterGeneratorConnection alloc() {
			return new CIFilterGeneratorConnection( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject connectionWithSourceObject_sourceKey_targetObject_targetKey_userInfo_( NObjective.RuntimeObject @object, NObjective.RuntimeObject sourceKey, NObjective.RuntimeObject targetObject, NObjective.RuntimeObject targetKey, NObjective.RuntimeObject userInfo ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.connectionWithSourceObject_sourceKey_targetObject_targetKey_userInfo_( ClassHandle, CachedSelectors.connectionWithSourceObject_sourceKey_targetObject_targetKey_userInfo_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), @object, sourceKey, targetObject, targetKey, userInfo );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithSourceObject_sourceKey_targetObject_targetKey_userInfo_( NObjective.RuntimeObject @object, NObjective.RuntimeObject sourceKey, NObjective.RuntimeObject targetObject, NObjective.RuntimeObject targetKey, NObjective.RuntimeObject userInfo ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithSourceObject_sourceKey_targetObject_targetKey_userInfo_( Handle, CachedSelectors.initWithSourceObject_sourceKey_targetObject_targetKey_userInfo_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), @object, sourceKey, targetObject, targetKey, userInfo );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void setType_( int type ) {
			RuntimeObject ___occuredException;
			NativeMethods.setType_( Handle, CachedSelectors.setType_, out ___occuredException, sizeof( int ), type );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setUserInfo_( NObjective.RuntimeObject info ) {
			RuntimeObject ___occuredException;
			NativeMethods.setUserInfo_( Handle, CachedSelectors.setUserInfo_, out ___occuredException, sizeof( NObjective.RuntimeObject ), info );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject sourceKey() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.sourceKey( Handle, CachedSelectors.sourceKey, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject sourceObject() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.sourceObject( Handle, CachedSelectors.sourceObject, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject targetKey() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.targetKey( Handle, CachedSelectors.targetKey, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject targetObject() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.targetObject( Handle, CachedSelectors.targetObject, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public int type() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.type( Handle, CachedSelectors.type, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject userInfo() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.userInfo( Handle, CachedSelectors.userInfo, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr connectionWithSourceObject_sourceKey_targetObject_targetKey_userInfo_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @object, NObjective.RuntimeObject sourceKey, NObjective.RuntimeObject targetObject, NObjective.RuntimeObject targetKey, NObjective.RuntimeObject userInfo );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithSourceObject_sourceKey_targetObject_targetKey_userInfo_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @object, NObjective.RuntimeObject sourceKey, NObjective.RuntimeObject targetObject, NObjective.RuntimeObject targetKey, NObjective.RuntimeObject userInfo );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setType_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int type );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setUserInfo_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject info );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr sourceKey( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr sourceObject( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr targetKey( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr targetObject( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int type( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr userInfo( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector connectionWithSourceObject_sourceKey_targetObject_targetKey_userInfo_ = "connectionWithSourceObject:sourceKey:targetObject:targetKey:userInfo:";
			public static readonly Selector initWithSourceObject_sourceKey_targetObject_targetKey_userInfo_ = "initWithSourceObject:sourceKey:targetObject:targetKey:userInfo:";
			public static readonly Selector setType_ = "setType:";
			public static readonly Selector setUserInfo_ = "setUserInfo:";
			public static readonly Selector sourceKey = "sourceKey";
			public static readonly Selector sourceObject = "sourceObject";
			public static readonly Selector targetKey = "targetKey";
			public static readonly Selector targetObject = "targetObject";
			public static readonly Selector type = "type";
			public static readonly Selector userInfo = "userInfo";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIFilterGraph : IEquatable<CIFilterGraph> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFilterGraph;
		public static implicit operator CIFilter( CIFilterGraph value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIFilterGraph value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFilterGraph value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFilterGraph value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFilterGraph?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFilterGraph value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFilterGraph value1, CIFilterGraph value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFilterGraph value1, CIFilterGraph value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFilterGraph( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFilterGraph alloc() {
			return new CIFilterGraph( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject initWithGraph_( NObjective.RuntimeObject graph ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithGraph_( Handle, CachedSelectors.initWithGraph_, out ___occuredException, sizeof( NObjective.RuntimeObject ), graph );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithGraph_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject graph );
		}
		static internal class CachedSelectors {
			public static readonly Selector initWithGraph_ = "initWithGraph:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIPlugIn ) )]
	public struct CIFilterPlugIn : IEquatable<CIFilterPlugIn> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFilterPlugIn;
		public static implicit operator CIPlugIn( CIFilterPlugIn value ) {
			return new CIPlugIn( value.Handle );
		}
		public static implicit operator NSObject( CIFilterPlugIn value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFilterPlugIn value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFilterPlugIn value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFilterPlugIn?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFilterPlugIn value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFilterPlugIn value1, CIFilterPlugIn value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFilterPlugIn value1, CIFilterPlugIn value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFilterPlugIn( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFilterPlugIn alloc() {
			return new CIFilterPlugIn( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject filterWithName_( NObjective.RuntimeObject name ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterWithName_( Handle, CachedSelectors.filterWithName_, out ___occuredException, sizeof( NObjective.RuntimeObject ), name );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject filterWithName_compatibilityVersion_( NObjective.RuntimeObject name, int compatibilityVersion ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterWithName_compatibilityVersion_( Handle, CachedSelectors.filterWithName_compatibilityVersion_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( int ), name, compatibilityVersion );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject filterWithName_compatibilityVersion_keysAndValues_( NObjective.RuntimeObject name, int compatibilityVersion, NObjective.RuntimeObject keysAndValues ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterWithName_compatibilityVersion_keysAndValues_( Handle, CachedSelectors.filterWithName_compatibilityVersion_keysAndValues_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( int ) + sizeof( NObjective.RuntimeObject ), name, compatibilityVersion, keysAndValues );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject filterWithName_keysAndValues_( NObjective.RuntimeObject name, NObjective.RuntimeObject keysAndValues ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterWithName_keysAndValues_( Handle, CachedSelectors.filterWithName_keysAndValues_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), name, keysAndValues );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void registerFilters() {
			RuntimeObject ___occuredException;
			NativeMethods.registerFilters( Handle, CachedSelectors.registerFilters, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithName_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithName_compatibilityVersion_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name, int compatibilityVersion );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithName_compatibilityVersion_keysAndValues_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name, int compatibilityVersion, NObjective.RuntimeObject keysAndValues );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithName_keysAndValues_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name, NObjective.RuntimeObject keysAndValues );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void registerFilters( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector filterWithName_ = "filterWithName:";
			public static readonly Selector filterWithName_compatibilityVersion_ = "filterWithName:compatibilityVersion:";
			public static readonly Selector filterWithName_compatibilityVersion_keysAndValues_ = "filterWithName:compatibilityVersion:keysAndValues:";
			public static readonly Selector filterWithName_keysAndValues_ = "filterWithName:keysAndValues:";
			public static readonly Selector registerFilters = "registerFilters";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIFilterShape : IEquatable<CIFilterShape> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFilterShape;
		public static implicit operator NSObject( CIFilterShape value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFilterShape value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFilterShape value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFilterShape?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFilterShape value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFilterShape value1, CIFilterShape value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFilterShape value1, CIFilterShape value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFilterShape( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFilterShape alloc() {
			return new CIFilterShape( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject shapeWithCGSRegion_( System.IntPtr region ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.shapeWithCGSRegion_( ClassHandle, CachedSelectors.shapeWithCGSRegion_, out ___occuredException, sizeof( System.IntPtr ), region );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject shapeWithRect_( CGRect rect ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.shapeWithRect_( ClassHandle, CachedSelectors.shapeWithRect_, out ___occuredException, sizeof( CGRect ), rect );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public System.IntPtr CGSRegion() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.CGSRegion( Handle, CachedSelectors.CGSRegion, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject initWithCGSRegion_( System.IntPtr region ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCGSRegion_( Handle, CachedSelectors.initWithCGSRegion_, out ___occuredException, sizeof( System.IntPtr ), region );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithRect_( CGRect rect ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithRect_( Handle, CachedSelectors.initWithRect_, out ___occuredException, sizeof( CGRect ), rect );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public CIFilterShape insetByX_Y_( int x, int Y ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.insetByX_Y_( Handle, CachedSelectors.insetByX_Y_, out ___occuredException, sizeof( int ) + sizeof( int ), x, Y );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIFilterShape( ___result );
		}
		unsafe public CIFilterShape intersectWith_( CIFilterShape with ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.intersectWith_( Handle, CachedSelectors.intersectWith_, out ___occuredException, sizeof( CIFilterShape ), with );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIFilterShape( ___result );
		}
		unsafe public CIFilterShape intersectWithRect_( CGRect rect ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.intersectWithRect_( Handle, CachedSelectors.intersectWithRect_, out ___occuredException, sizeof( CGRect ), rect );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIFilterShape( ___result );
		}
		unsafe public CIFilterShape transformBy_interior_( CGAffineTransform @by, bool interior ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.transformBy_interior_( Handle, CachedSelectors.transformBy_interior_, out ___occuredException, sizeof( CGAffineTransform ) + sizeof( bool ), @by, interior );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIFilterShape( ___result );
		}
		unsafe public CIFilterShape unionWith_( CIFilterShape with ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.unionWith_( Handle, CachedSelectors.unionWith_, out ___occuredException, sizeof( CIFilterShape ), with );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIFilterShape( ___result );
		}
		unsafe public CIFilterShape unionWithRect_( CGRect rect ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.unionWithRect_( Handle, CachedSelectors.unionWithRect_, out ___occuredException, sizeof( CGRect ), rect );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIFilterShape( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern System.IntPtr CGSRegion( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCGSRegion_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr region );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithRect_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGRect rect );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr insetByX_Y_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int x, int Y );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr intersectWith_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CIFilterShape with );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr intersectWithRect_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGRect rect );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr shapeWithCGSRegion_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr region );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr shapeWithRect_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGRect rect );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr transformBy_interior_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGAffineTransform @by, bool interior );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr unionWith_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CIFilterShape with );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr unionWithRect_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGRect rect );
		}
		static internal class CachedSelectors {
			public static readonly Selector CGSRegion = "CGSRegion";
			public static readonly Selector initWithCGSRegion_ = "initWithCGSRegion:";
			public static readonly Selector initWithRect_ = "initWithRect:";
			public static readonly Selector insetByX_Y_ = "insetByX:Y:";
			public static readonly Selector intersectWith_ = "intersectWith:";
			public static readonly Selector intersectWithRect_ = "intersectWithRect:";
			public static readonly Selector shapeWithCGSRegion_ = "shapeWithCGSRegion:";
			public static readonly Selector shapeWithRect_ = "shapeWithRect:";
			public static readonly Selector transformBy_interior_ = "transformBy:interior:";
			public static readonly Selector unionWith_ = "unionWith:";
			public static readonly Selector unionWithRect_ = "unionWithRect:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIFlashTransition : IEquatable<CIFlashTransition> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFlashTransition;
		public static implicit operator CIFilter( CIFlashTransition value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIFlashTransition value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFlashTransition value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFlashTransition value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFlashTransition?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFlashTransition value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFlashTransition value1, CIFlashTransition value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFlashTransition value1, CIFlashTransition value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFlashTransition( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFlashTransition alloc() {
			return new CIFlashTransition( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIFlat3X3ChromaBlur : IEquatable<CIFlat3X3ChromaBlur> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFlat3X3ChromaBlur;
		public static implicit operator CIFilter( CIFlat3X3ChromaBlur value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIFlat3X3ChromaBlur value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFlat3X3ChromaBlur value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFlat3X3ChromaBlur value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFlat3X3ChromaBlur?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFlat3X3ChromaBlur value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFlat3X3ChromaBlur value1, CIFlat3X3ChromaBlur value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFlat3X3ChromaBlur value1, CIFlat3X3ChromaBlur value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFlat3X3ChromaBlur( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFlat3X3ChromaBlur alloc() {
			return new CIFlat3X3ChromaBlur( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIFlat5X5ChromaBlur : IEquatable<CIFlat5X5ChromaBlur> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFlat5X5ChromaBlur;
		public static implicit operator CIFilter( CIFlat5X5ChromaBlur value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIFlat5X5ChromaBlur value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFlat5X5ChromaBlur value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFlat5X5ChromaBlur value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFlat5X5ChromaBlur?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFlat5X5ChromaBlur value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFlat5X5ChromaBlur value1, CIFlat5X5ChromaBlur value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFlat5X5ChromaBlur value1, CIFlat5X5ChromaBlur value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFlat5X5ChromaBlur( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFlat5X5ChromaBlur alloc() {
			return new CIFlat5X5ChromaBlur( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIFourfoldReflectedTile : IEquatable<CIFourfoldReflectedTile> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFourfoldReflectedTile;
		public static implicit operator CIFilter( CIFourfoldReflectedTile value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIFourfoldReflectedTile value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFourfoldReflectedTile value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFourfoldReflectedTile value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFourfoldReflectedTile?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFourfoldReflectedTile value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFourfoldReflectedTile value1, CIFourfoldReflectedTile value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFourfoldReflectedTile value1, CIFourfoldReflectedTile value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFourfoldReflectedTile( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFourfoldReflectedTile alloc() {
			return new CIFourfoldReflectedTile( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIFourfoldRotatedTile : IEquatable<CIFourfoldRotatedTile> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFourfoldRotatedTile;
		public static implicit operator CIFilter( CIFourfoldRotatedTile value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIFourfoldRotatedTile value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFourfoldRotatedTile value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFourfoldRotatedTile value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFourfoldRotatedTile?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFourfoldRotatedTile value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFourfoldRotatedTile value1, CIFourfoldRotatedTile value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFourfoldRotatedTile value1, CIFourfoldRotatedTile value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFourfoldRotatedTile( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFourfoldRotatedTile alloc() {
			return new CIFourfoldRotatedTile( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIFourfoldTranslatedTile : IEquatable<CIFourfoldTranslatedTile> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFourfoldTranslatedTile;
		public static implicit operator CIFilter( CIFourfoldTranslatedTile value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIFourfoldTranslatedTile value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFourfoldTranslatedTile value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFourfoldTranslatedTile value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFourfoldTranslatedTile?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFourfoldTranslatedTile value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFourfoldTranslatedTile value1, CIFourfoldTranslatedTile value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFourfoldTranslatedTile value1, CIFourfoldTranslatedTile value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFourfoldTranslatedTile( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFourfoldTranslatedTile alloc() {
			return new CIFourfoldTranslatedTile( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIFullButton : IEquatable<CIFullButton> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIFullButton;
		public static implicit operator CIFilter( CIFullButton value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIFullButton value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIFullButton value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIFullButton value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIFullButton?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIFullButton value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIFullButton value1, CIFullButton value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIFullButton value1, CIFullButton value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIFullButton( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIFullButton alloc() {
			return new CIFullButton( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject computeAlphaMask() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.computeAlphaMask( Handle, CachedSelectors.computeAlphaMask, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject computeButton() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.computeButton( Handle, CachedSelectors.computeButton, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject computeHighlight() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.computeHighlight( Handle, CachedSelectors.computeHighlight, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject computeInlay() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.computeInlay( Handle, CachedSelectors.computeInlay, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject computeInsideShadow() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.computeInsideShadow( Handle, CachedSelectors.computeInsideShadow, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject computeOutline() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.computeOutline( Handle, CachedSelectors.computeOutline, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject computeOutsideShadow() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.computeOutsideShadow( Handle, CachedSelectors.computeOutsideShadow, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr computeAlphaMask( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr computeButton( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr computeHighlight( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr computeInlay( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr computeInsideShadow( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr computeOutline( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr computeOutsideShadow( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector computeAlphaMask = "computeAlphaMask";
			public static readonly Selector computeButton = "computeButton";
			public static readonly Selector computeHighlight = "computeHighlight";
			public static readonly Selector computeInlay = "computeInlay";
			public static readonly Selector computeInsideShadow = "computeInsideShadow";
			public static readonly Selector computeOutline = "computeOutline";
			public static readonly Selector computeOutsideShadow = "computeOutsideShadow";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIGammaAdjust : IEquatable<CIGammaAdjust> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIGammaAdjust;
		public static implicit operator CIFilter( CIGammaAdjust value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIGammaAdjust value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIGammaAdjust value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIGammaAdjust value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIGammaAdjust?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIGammaAdjust value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIGammaAdjust value1, CIGammaAdjust value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIGammaAdjust value1, CIGammaAdjust value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIGammaAdjust( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIGammaAdjust alloc() {
			return new CIGammaAdjust( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIGamutAlarm : IEquatable<CIGamutAlarm> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIGamutAlarm;
		public static implicit operator CIFilter( CIGamutAlarm value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIGamutAlarm value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIGamutAlarm value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIGamutAlarm value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIGamutAlarm?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIGamutAlarm value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIGamutAlarm value1, CIGamutAlarm value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIGamutAlarm value1, CIGamutAlarm value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIGamutAlarm( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIGamutAlarm alloc() {
			return new CIGamutAlarm( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIGamutClamp : IEquatable<CIGamutClamp> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIGamutClamp;
		public static implicit operator CIFilter( CIGamutClamp value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIGamutClamp value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIGamutClamp value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIGamutClamp value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIGamutClamp?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIGamutClamp value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIGamutClamp value1, CIGamutClamp value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIGamutClamp value1, CIGamutClamp value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIGamutClamp( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIGamutClamp alloc() {
			return new CIGamutClamp( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIGamutRollOff : IEquatable<CIGamutRollOff> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIGamutRollOff;
		public static implicit operator CIFilter( CIGamutRollOff value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIGamutRollOff value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIGamutRollOff value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIGamutRollOff value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIGamutRollOff?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIGamutRollOff value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIGamutRollOff value1, CIGamutRollOff value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIGamutRollOff value1, CIGamutRollOff value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIGamutRollOff( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIGamutRollOff alloc() {
			return new CIGamutRollOff( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIGaussianBlur : IEquatable<CIGaussianBlur> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIGaussianBlur;
		public static implicit operator CIFilter( CIGaussianBlur value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIGaussianBlur value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIGaussianBlur value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIGaussianBlur value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIGaussianBlur?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIGaussianBlur value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIGaussianBlur value1, CIGaussianBlur value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIGaussianBlur value1, CIGaussianBlur value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIGaussianBlur( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIGaussianBlur alloc() {
			return new CIGaussianBlur( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIGaussianChromaBlurMinimum : IEquatable<CIGaussianChromaBlurMinimum> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIGaussianChromaBlurMinimum;
		public static implicit operator CIFilter( CIGaussianChromaBlurMinimum value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIGaussianChromaBlurMinimum value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIGaussianChromaBlurMinimum value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIGaussianChromaBlurMinimum value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIGaussianChromaBlurMinimum?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIGaussianChromaBlurMinimum value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIGaussianChromaBlurMinimum value1, CIGaussianChromaBlurMinimum value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIGaussianChromaBlurMinimum value1, CIGaussianChromaBlurMinimum value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIGaussianChromaBlurMinimum( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIGaussianChromaBlurMinimum alloc() {
			return new CIGaussianChromaBlurMinimum( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIGaussianGradient : IEquatable<CIGaussianGradient> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIGaussianGradient;
		public static implicit operator CIFilter( CIGaussianGradient value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIGaussianGradient value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIGaussianGradient value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIGaussianGradient value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIGaussianGradient?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIGaussianGradient value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIGaussianGradient value1, CIGaussianGradient value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIGaussianGradient value1, CIGaussianGradient value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIGaussianGradient( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIGaussianGradient alloc() {
			return new CIGaussianGradient( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIGaussianPyramid : IEquatable<CIGaussianPyramid> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIGaussianPyramid;
		public static implicit operator CIFilter( CIGaussianPyramid value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIGaussianPyramid value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIGaussianPyramid value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIGaussianPyramid value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIGaussianPyramid?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIGaussianPyramid value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIGaussianPyramid value1, CIGaussianPyramid value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIGaussianPyramid value1, CIGaussianPyramid value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIGaussianPyramid( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIGaussianPyramid alloc() {
			return new CIGaussianPyramid( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIGelBlendMode : IEquatable<CIGelBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIGelBlendMode;
		public static implicit operator CIFilter( CIGelBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIGelBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIGelBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIGelBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIGelBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIGelBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIGelBlendMode value1, CIGelBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIGelBlendMode value1, CIGelBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIGelBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIGelBlendMode alloc() {
			return new CIGelBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIGlassDistortion : IEquatable<CIGlassDistortion> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIGlassDistortion;
		public static implicit operator CIFilter( CIGlassDistortion value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIGlassDistortion value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIGlassDistortion value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIGlassDistortion value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIGlassDistortion?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIGlassDistortion value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIGlassDistortion value1, CIGlassDistortion value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIGlassDistortion value1, CIGlassDistortion value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIGlassDistortion( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIGlassDistortion alloc() {
			return new CIGlassDistortion( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIGlassLozenge : IEquatable<CIGlassLozenge> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIGlassLozenge;
		public static implicit operator CIFilter( CIGlassLozenge value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIGlassLozenge value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIGlassLozenge value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIGlassLozenge value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIGlassLozenge?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIGlassLozenge value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIGlassLozenge value1, CIGlassLozenge value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIGlassLozenge value1, CIGlassLozenge value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIGlassLozenge( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIGlassLozenge alloc() {
			return new CIGlassLozenge( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIGlideReflectedTile : IEquatable<CIGlideReflectedTile> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIGlideReflectedTile;
		public static implicit operator CIFilter( CIGlideReflectedTile value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIGlideReflectedTile value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIGlideReflectedTile value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIGlideReflectedTile value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIGlideReflectedTile?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIGlideReflectedTile value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIGlideReflectedTile value1, CIGlideReflectedTile value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIGlideReflectedTile value1, CIGlideReflectedTile value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIGlideReflectedTile( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIGlideReflectedTile alloc() {
			return new CIGlideReflectedTile( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIGloom : IEquatable<CIGloom> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIGloom;
		public static implicit operator CIFilter( CIGloom value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIGloom value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIGloom value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIGloom value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIGloom?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIGloom value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIGloom value1, CIGloom value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIGloom value1, CIGloom value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIGloom( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIGloom alloc() {
			return new CIGloom( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIGraph : IEquatable<CIGraph> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIGraph;
		public static implicit operator NSObject( CIGraph value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIGraph value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIGraph value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIGraph?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIGraph value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIGraph value1, CIGraph value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIGraph value1, CIGraph value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIGraph( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIGraph alloc() {
			return new CIGraph( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject graph() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.graph( ClassHandle, CachedSelectors.graph, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void addEdge_( NObjective.RuntimeObject edge ) {
			RuntimeObject ___occuredException;
			NativeMethods.addEdge_( Handle, CachedSelectors.addEdge_, out ___occuredException, sizeof( NObjective.RuntimeObject ), edge );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject attributes() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.attributes( Handle, CachedSelectors.attributes, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject edgeEnumerator() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.edgeEnumerator( Handle, CachedSelectors.edgeEnumerator, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject edgeEnumeratorForNode_direction_( NObjective.RuntimeObject node, int direction ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.edgeEnumeratorForNode_direction_( Handle, CachedSelectors.edgeEnumeratorForNode_direction_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( int ), node, direction );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void encodeWithCoder_( NSCoder coder ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeWithCoder_( Handle, CachedSelectors.encodeWithCoder_, out ___occuredException, sizeof( NSCoder ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject filter() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filter( Handle, CachedSelectors.filter, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject filterWithName_( NObjective.RuntimeObject name ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filterWithName_( Handle, CachedSelectors.filterWithName_, out ___occuredException, sizeof( NObjective.RuntimeObject ), name );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject immutableCopy() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.immutableCopy( Handle, CachedSelectors.immutableCopy, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCoder_( NObjective.RuntimeObject coder ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCoder_( Handle, CachedSelectors.initWithCoder_, out ___occuredException, sizeof( NObjective.RuntimeObject ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject inputKeys() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.inputKeys( Handle, CachedSelectors.inputKeys, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputKeys() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputKeys( Handle, CachedSelectors.outputKeys, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void registerFilterName_classAttributes_( NObjective.RuntimeObject name, NObjective.RuntimeObject classAttributes ) {
			RuntimeObject ___occuredException;
			NativeMethods.registerFilterName_classAttributes_( Handle, CachedSelectors.registerFilterName_classAttributes_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), name, classAttributes );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void removeEdge_( NObjective.RuntimeObject edge ) {
			RuntimeObject ___occuredException;
			NativeMethods.removeEdge_( Handle, CachedSelectors.removeEdge_, out ___occuredException, sizeof( NObjective.RuntimeObject ), edge );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setUserInfo_( NObjective.RuntimeObject info ) {
			RuntimeObject ___occuredException;
			NativeMethods.setUserInfo_( Handle, CachedSelectors.setUserInfo_, out ___occuredException, sizeof( NObjective.RuntimeObject ), info );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject userInfo() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.userInfo( Handle, CachedSelectors.userInfo, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject valueForKey_withInputs_exists_( NObjective.RuntimeObject key, NObjective.RuntimeObject withInputs, System.IntPtr exists ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueForKey_withInputs_exists_( Handle, CachedSelectors.valueForKey_withInputs_exists_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ), key, withInputs, exists );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void addEdge_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject edge );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr attributes( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr edgeEnumerator( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr edgeEnumeratorForNode_direction_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject node, int direction );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSCoder coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filter( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filterWithName_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr graph( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr immutableCopy( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr inputKeys( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputKeys( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void registerFilterName_classAttributes_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name, NObjective.RuntimeObject classAttributes );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void removeEdge_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject edge );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setUserInfo_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject info );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr userInfo( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueForKey_withInputs_exists_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key, NObjective.RuntimeObject withInputs, System.IntPtr exists );
		}
		static internal class CachedSelectors {
			public static readonly Selector addEdge_ = "addEdge:";
			public static readonly Selector attributes = "attributes";
			public static readonly Selector edgeEnumerator = "edgeEnumerator";
			public static readonly Selector edgeEnumeratorForNode_direction_ = "edgeEnumeratorForNode:direction:";
			public static readonly Selector encodeWithCoder_ = "encodeWithCoder:";
			public static readonly Selector filter = "filter";
			public static readonly Selector filterWithName_ = "filterWithName:";
			public static readonly Selector graph = "graph";
			public static readonly Selector immutableCopy = "immutableCopy";
			public static readonly Selector initWithCoder_ = "initWithCoder:";
			public static readonly Selector inputKeys = "inputKeys";
			public static readonly Selector outputKeys = "outputKeys";
			public static readonly Selector registerFilterName_classAttributes_ = "registerFilterName:classAttributes:";
			public static readonly Selector removeEdge_ = "removeEdge:";
			public static readonly Selector setUserInfo_ = "setUserInfo:";
			public static readonly Selector userInfo = "userInfo";
			public static readonly Selector valueForKey_withInputs_exists_ = "valueForKey:withInputs:exists:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIHardLightBlendMode : IEquatable<CIHardLightBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIHardLightBlendMode;
		public static implicit operator CIFilter( CIHardLightBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIHardLightBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIHardLightBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIHardLightBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIHardLightBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIHardLightBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIHardLightBlendMode value1, CIHardLightBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIHardLightBlendMode value1, CIHardLightBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIHardLightBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIHardLightBlendMode alloc() {
			return new CIHardLightBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIHardMixBlendMode : IEquatable<CIHardMixBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIHardMixBlendMode;
		public static implicit operator CIFilter( CIHardMixBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIHardMixBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIHardMixBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIHardMixBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIHardMixBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIHardMixBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIHardMixBlendMode value1, CIHardMixBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIHardMixBlendMode value1, CIHardMixBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIHardMixBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIHardMixBlendMode alloc() {
			return new CIHardMixBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIHatchedScreen : IEquatable<CIHatchedScreen> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIHatchedScreen;
		public static implicit operator CIFilter( CIHatchedScreen value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIHatchedScreen value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIHatchedScreen value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIHatchedScreen value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIHatchedScreen?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIHatchedScreen value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIHatchedScreen value1, CIHatchedScreen value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIHatchedScreen value1, CIHatchedScreen value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIHatchedScreen( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIHatchedScreen alloc() {
			return new CIHatchedScreen( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIHDRToneMapping : IEquatable<CIHDRToneMapping> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIHDRToneMapping;
		public static implicit operator CIFilter( CIHDRToneMapping value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIHDRToneMapping value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIHDRToneMapping value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIHDRToneMapping value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIHDRToneMapping?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIHDRToneMapping value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIHDRToneMapping value1, CIHDRToneMapping value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIHDRToneMapping value1, CIHDRToneMapping value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIHDRToneMapping( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIHDRToneMapping alloc() {
			return new CIHDRToneMapping( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIHeightFieldFromConstraints : IEquatable<CIHeightFieldFromConstraints> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIHeightFieldFromConstraints;
		public static implicit operator CIFilter( CIHeightFieldFromConstraints value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIHeightFieldFromConstraints value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIHeightFieldFromConstraints value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIHeightFieldFromConstraints value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIHeightFieldFromConstraints?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIHeightFieldFromConstraints value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIHeightFieldFromConstraints value1, CIHeightFieldFromConstraints value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIHeightFieldFromConstraints value1, CIHeightFieldFromConstraints value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIHeightFieldFromConstraints( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIHeightFieldFromConstraints alloc() {
			return new CIHeightFieldFromConstraints( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIHeightFieldFromMask : IEquatable<CIHeightFieldFromMask> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIHeightFieldFromMask;
		public static implicit operator CIFilter( CIHeightFieldFromMask value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIHeightFieldFromMask value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIHeightFieldFromMask value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIHeightFieldFromMask value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIHeightFieldFromMask?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIHeightFieldFromMask value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIHeightFieldFromMask value1, CIHeightFieldFromMask value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIHeightFieldFromMask value1, CIHeightFieldFromMask value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIHeightFieldFromMask( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIHeightFieldFromMask alloc() {
			return new CIHeightFieldFromMask( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIHexagonalPixellate : IEquatable<CIHexagonalPixellate> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIHexagonalPixellate;
		public static implicit operator CIFilter( CIHexagonalPixellate value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIHexagonalPixellate value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIHexagonalPixellate value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIHexagonalPixellate value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIHexagonalPixellate?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIHexagonalPixellate value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIHexagonalPixellate value1, CIHexagonalPixellate value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIHexagonalPixellate value1, CIHexagonalPixellate value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIHexagonalPixellate( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIHexagonalPixellate alloc() {
			return new CIHexagonalPixellate( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIHighlightShadow : IEquatable<CIHighlightShadow> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIHighlightShadow;
		public static implicit operator CIFilter( CIHighlightShadow value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIHighlightShadow value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIHighlightShadow value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIHighlightShadow value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIHighlightShadow?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIHighlightShadow value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIHighlightShadow value1, CIHighlightShadow value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIHighlightShadow value1, CIHighlightShadow value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIHighlightShadow( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIHighlightShadow alloc() {
			return new CIHighlightShadow( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIHistogram : IEquatable<CIHistogram> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIHistogram;
		public static implicit operator CIFilter( CIHistogram value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIHistogram value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIHistogram value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIHistogram value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIHistogram?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIHistogram value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIHistogram value1, CIHistogram value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIHistogram value1, CIHistogram value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIHistogram( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIHistogram alloc() {
			return new CIHistogram( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject forcePromise_( NObjective.RuntimeObject promise ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.forcePromise_( Handle, CachedSelectors.forcePromise_, out ___occuredException, sizeof( NObjective.RuntimeObject ), promise );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr forcePromise_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject promise );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector forcePromise_ = "forcePromise:";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIHoleDistortion : IEquatable<CIHoleDistortion> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIHoleDistortion;
		public static implicit operator CIFilter( CIHoleDistortion value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIHoleDistortion value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIHoleDistortion value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIHoleDistortion value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIHoleDistortion?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIHoleDistortion value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIHoleDistortion value1, CIHoleDistortion value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIHoleDistortion value1, CIHoleDistortion value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIHoleDistortion( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIHoleDistortion alloc() {
			return new CIHoleDistortion( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIHomomorphicSharpen : IEquatable<CIHomomorphicSharpen> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIHomomorphicSharpen;
		public static implicit operator CIFilter( CIHomomorphicSharpen value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIHomomorphicSharpen value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIHomomorphicSharpen value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIHomomorphicSharpen value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIHomomorphicSharpen?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIHomomorphicSharpen value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIHomomorphicSharpen value1, CIHomomorphicSharpen value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIHomomorphicSharpen value1, CIHomomorphicSharpen value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIHomomorphicSharpen( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIHomomorphicSharpen alloc() {
			return new CIHomomorphicSharpen( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIHueAdjust : IEquatable<CIHueAdjust> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIHueAdjust;
		public static implicit operator CIFilter( CIHueAdjust value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIHueAdjust value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIHueAdjust value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIHueAdjust value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIHueAdjust?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIHueAdjust value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIHueAdjust value1, CIHueAdjust value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIHueAdjust value1, CIHueAdjust value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIHueAdjust( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIHueAdjust alloc() {
			return new CIHueAdjust( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIHueBlendMode : IEquatable<CIHueBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIHueBlendMode;
		public static implicit operator CIFilter( CIHueBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIHueBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIHueBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIHueBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIHueBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIHueBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIHueBlendMode value1, CIHueBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIHueBlendMode value1, CIHueBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIHueBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIHueBlendMode alloc() {
			return new CIHueBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIImage : IEquatable<CIImage> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIImage;
		public static implicit operator NSObject( CIImage value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIImage value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIImage value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIImage?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIImage value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIImage value1, CIImage value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIImage value1, CIImage value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIImage( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIImage alloc() {
			return new CIImage( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static CIImage emptyImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.emptyImage( ClassHandle, CachedSelectors.emptyImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static CIImage imageWithBitmapData_bytesPerRow_size_format_colorSpace_( NSData data, uint bytesPerRow, CGSize size, int format, IntPtr colorSpace ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithBitmapData_bytesPerRow_size_format_colorSpace_( ClassHandle, CachedSelectors.imageWithBitmapData_bytesPerRow_size_format_colorSpace_, out ___occuredException, sizeof( NSData ) + sizeof( uint ) + sizeof( CGSize ) + sizeof( int ) + sizeof( IntPtr ), data, bytesPerRow, size, format, colorSpace );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static CIImage imageWithCGImage_( IntPtr image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithCGImage_( ClassHandle, CachedSelectors.imageWithCGImage_, out ___occuredException, sizeof( IntPtr ), image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static CIImage imageWithCGImage_options_( IntPtr image, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithCGImage_options_( ClassHandle, CachedSelectors.imageWithCGImage_options_, out ___occuredException, sizeof( IntPtr ) + sizeof( NSDictionary ), image, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static CIImage imageWithCGLayer_( IntPtr layer ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithCGLayer_( ClassHandle, CachedSelectors.imageWithCGLayer_, out ___occuredException, sizeof( IntPtr ), layer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static CIImage imageWithCGLayer_options_( IntPtr layer, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithCGLayer_options_( ClassHandle, CachedSelectors.imageWithCGLayer_options_, out ___occuredException, sizeof( IntPtr ) + sizeof( NSDictionary ), layer, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static CIImage imageWithColor_( CIColor color ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithColor_( ClassHandle, CachedSelectors.imageWithColor_, out ___occuredException, sizeof( CIColor ), color );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static CIImage imageWithContentsOfURL_( NSURL url ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithContentsOfURL_( ClassHandle, CachedSelectors.imageWithContentsOfURL_, out ___occuredException, sizeof( NSURL ), url );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static CIImage imageWithContentsOfURL_options_( NSURL url, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithContentsOfURL_options_( ClassHandle, CachedSelectors.imageWithContentsOfURL_options_, out ___occuredException, sizeof( NSURL ) + sizeof( NSDictionary ), url, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static CIImage imageWithCVImageBuffer_( IntPtr buffer ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithCVImageBuffer_( ClassHandle, CachedSelectors.imageWithCVImageBuffer_, out ___occuredException, sizeof( IntPtr ), buffer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static CIImage imageWithCVImageBuffer_options_( IntPtr buffer, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithCVImageBuffer_options_( ClassHandle, CachedSelectors.imageWithCVImageBuffer_options_, out ___occuredException, sizeof( IntPtr ) + sizeof( NSDictionary ), buffer, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static CIImage imageWithData_( NSData data ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithData_( ClassHandle, CachedSelectors.imageWithData_, out ___occuredException, sizeof( NSData ), data );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static CIImage imageWithData_options_( NSData data, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithData_options_( ClassHandle, CachedSelectors.imageWithData_options_, out ___occuredException, sizeof( NSData ) + sizeof( NSDictionary ), data, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static CIImage imageWithImageProvider_size__format_colorSpace_options_( NObjective.RuntimeObject provider, uint size, uint unnamedParameter, int format, IntPtr colorSpace, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithImageProvider_size__format_colorSpace_options_( ClassHandle, CachedSelectors.imageWithImageProvider_size__format_colorSpace_options_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ) + sizeof( uint ) + sizeof( int ) + sizeof( IntPtr ) + sizeof( NSDictionary ), provider, size, unnamedParameter, format, colorSpace, options
			 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static NObjective.RuntimeObject imageWithJPEGFile_( NObjective.RuntimeObject file ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithJPEGFile_( ClassHandle, CachedSelectors.imageWithJPEGFile_, out ___occuredException, sizeof( NObjective.RuntimeObject ), file );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject imageWithPNGFile_( NObjective.RuntimeObject file ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithPNGFile_( ClassHandle, CachedSelectors.imageWithPNGFile_, out ___occuredException, sizeof( NObjective.RuntimeObject ), file );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static CIImage imageWithTexture_size_flipped_colorSpace_( uint texture, CGSize size, bool flipped, IntPtr colorSpace ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithTexture_size_flipped_colorSpace_( ClassHandle, CachedSelectors.imageWithTexture_size_flipped_colorSpace_, out ___occuredException, sizeof( uint ) + sizeof( CGSize ) + sizeof( bool ) + sizeof( IntPtr ), texture, size, flipped, colorSpace );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public static NObjective.RuntimeObject imageWithURL_( NObjective.RuntimeObject url ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithURL_( ClassHandle, CachedSelectors.imageWithURL_, out ___occuredException, sizeof( NObjective.RuntimeObject ), url );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject noiseImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.noiseImage( ClassHandle, CachedSelectors.noiseImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject nullImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.nullImage( ClassHandle, CachedSelectors.nullImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public char cacheHint() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.cacheHint( Handle, CachedSelectors.cacheHint, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public CIFilterShape definition() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.definition( Handle, CachedSelectors.definition, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIFilterShape( ___result );
		}
		unsafe public void encodeWithCoder_( NSCoder coder ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeWithCoder_( Handle, CachedSelectors.encodeWithCoder_, out ___occuredException, sizeof( NSCoder ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public CGRect extent() {
			CGRect ___result;
			RuntimeObject ___occuredException;
			NativeMethods.extent( out ___result, sizeof( CGRect ), Handle, CachedSelectors.extent, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject filteredImage_keysAndValues_( NObjective.RuntimeObject image, NObjective.RuntimeObject keysAndValues ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filteredImage_keysAndValues_( Handle, CachedSelectors.filteredImage_keysAndValues_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), image, keysAndValues );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public CIImage imageByApplyingTransform_( CGAffineTransform transform ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageByApplyingTransform_( Handle, CachedSelectors.imageByApplyingTransform_, out ___occuredException, sizeof( CGAffineTransform ), transform );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public NObjective.RuntimeObject imageByCompositingOverImage_( NObjective.RuntimeObject image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageByCompositingOverImage_( Handle, CachedSelectors.imageByCompositingOverImage_, out ___occuredException, sizeof( NObjective.RuntimeObject ), image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public CIImage imageByCroppingToRect_( CGRect rect ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageByCroppingToRect_( Handle, CachedSelectors.imageByCroppingToRect_, out ___occuredException, sizeof( CGRect ), rect );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public NObjective.RuntimeObject imageByCroppingToRegion_( System.IntPtr region ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageByCroppingToRegion_( Handle, CachedSelectors.imageByCroppingToRegion_, out ___occuredException, sizeof( System.IntPtr ), region );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject imageByCroppingToShape_( NObjective.RuntimeObject shape ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageByCroppingToShape_( Handle, CachedSelectors.imageByCroppingToShape_, out ___occuredException, sizeof( NObjective.RuntimeObject ), shape );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithBitmapData_bytesPerRow_size_format_colorSpace_( NSData data, uint bytesPerRow, CGSize size, int format, IntPtr colorSpace ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithBitmapData_bytesPerRow_size_format_colorSpace_( Handle, CachedSelectors.initWithBitmapData_bytesPerRow_size_format_colorSpace_, out ___occuredException, sizeof( NSData ) + sizeof( uint ) + sizeof( CGSize ) + sizeof( int ) + sizeof( IntPtr ), data, bytesPerRow, size, format, colorSpace );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCGImage_( IntPtr image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCGImage_( Handle, CachedSelectors.initWithCGImage_, out ___occuredException, sizeof( IntPtr ), image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCGImage_options_( IntPtr image, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCGImage_options_( Handle, CachedSelectors.initWithCGImage_options_, out ___occuredException, sizeof( IntPtr ) + sizeof( NSDictionary ), image, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCGLayer_( IntPtr layer ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCGLayer_( Handle, CachedSelectors.initWithCGLayer_, out ___occuredException, sizeof( IntPtr ), layer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCGLayer_options_( IntPtr layer, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCGLayer_options_( Handle, CachedSelectors.initWithCGLayer_options_, out ___occuredException, sizeof( IntPtr ) + sizeof( NSDictionary ), layer, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCoder_( NObjective.RuntimeObject coder ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCoder_( Handle, CachedSelectors.initWithCoder_, out ___occuredException, sizeof( NObjective.RuntimeObject ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithColor_( CIColor color ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithColor_( Handle, CachedSelectors.initWithColor_, out ___occuredException, sizeof( CIColor ), color );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithContentsOfURL_( NSURL url ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithContentsOfURL_( Handle, CachedSelectors.initWithContentsOfURL_, out ___occuredException, sizeof( NSURL ), url );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithContentsOfURL_options_( NSURL url, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithContentsOfURL_options_( Handle, CachedSelectors.initWithContentsOfURL_options_, out ___occuredException, sizeof( NSURL ) + sizeof( NSDictionary ), url, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCVImageBuffer_( IntPtr buffer ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCVImageBuffer_( Handle, CachedSelectors.initWithCVImageBuffer_, out ___occuredException, sizeof( IntPtr ), buffer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCVImageBuffer_options_( IntPtr buffer, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCVImageBuffer_options_( Handle, CachedSelectors.initWithCVImageBuffer_options_, out ___occuredException, sizeof( IntPtr ) + sizeof( NSDictionary ), buffer, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithData_( NSData data ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithData_( Handle, CachedSelectors.initWithData_, out ___occuredException, sizeof( NSData ), data );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithData_options_( NSData data, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithData_options_( Handle, CachedSelectors.initWithData_options_, out ___occuredException, sizeof( NSData ) + sizeof( NSDictionary ), data, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithImageProvider_size__format_colorSpace_options_( NObjective.RuntimeObject provider, uint size, uint unnamedParameter, int format, IntPtr colorSpace, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithImageProvider_size__format_colorSpace_options_( Handle, CachedSelectors.initWithImageProvider_size__format_colorSpace_options_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( uint ) + sizeof( uint ) + sizeof( int ) + sizeof( IntPtr ) + sizeof( NSDictionary ), provider, size, unnamedParameter, format, colorSpace, options
			 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithJPEGFile_( NObjective.RuntimeObject file ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithJPEGFile_( Handle, CachedSelectors.initWithJPEGFile_, out ___occuredException, sizeof( NObjective.RuntimeObject ), file );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithJPEGFile_options_( NObjective.RuntimeObject file, NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithJPEGFile_options_( Handle, CachedSelectors.initWithJPEGFile_options_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), file, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithPNGFile_( NObjective.RuntimeObject file ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithPNGFile_( Handle, CachedSelectors.initWithPNGFile_, out ___occuredException, sizeof( NObjective.RuntimeObject ), file );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithPNGFile_options_( NObjective.RuntimeObject file, NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithPNGFile_options_( Handle, CachedSelectors.initWithPNGFile_options_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), file, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithTexture_size_flipped_colorSpace_( uint texture, CGSize size, bool flipped, IntPtr colorSpace ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithTexture_size_flipped_colorSpace_( Handle, CachedSelectors.initWithTexture_size_flipped_colorSpace_, out ___occuredException, sizeof( uint ) + sizeof( CGSize ) + sizeof( bool ) + sizeof( IntPtr ), texture, size, flipped, colorSpace );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithURL_( NObjective.RuntimeObject url ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithURL_( Handle, CachedSelectors.initWithURL_, out ___occuredException, sizeof( NObjective.RuntimeObject ), url );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void invalidateShape_( NObjective.RuntimeObject shape ) {
			RuntimeObject ___occuredException;
			NativeMethods.invalidateShape_( Handle, CachedSelectors.invalidateShape_, out ___occuredException, sizeof( NObjective.RuntimeObject ), shape );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject opaqueShape() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.opaqueShape( Handle, CachedSelectors.opaqueShape, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject promotedImage_( int image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.promotedImage_( Handle, CachedSelectors.promotedImage_, out ___occuredException, sizeof( int ), image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void release() {
			RuntimeObject ___occuredException;
			NativeMethods.release( Handle, CachedSelectors.release, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setCacheHint_( char hint ) {
			RuntimeObject ___occuredException;
			NativeMethods.setCacheHint_( Handle, CachedSelectors.setCacheHint_, out ___occuredException, sizeof( char ), hint );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setOpaqueShape_( NObjective.RuntimeObject shape ) {
			RuntimeObject ___occuredException;
			NativeMethods.setOpaqueShape_( Handle, CachedSelectors.setOpaqueShape_, out ___occuredException, sizeof( NObjective.RuntimeObject ), shape );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setUserInfo_( NObjective.RuntimeObject info ) {
			RuntimeObject ___occuredException;
			NativeMethods.setUserInfo_( Handle, CachedSelectors.setUserInfo_, out ___occuredException, sizeof( NObjective.RuntimeObject ), info );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject userInfo() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.userInfo( Handle, CachedSelectors.userInfo, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char cacheHint( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr definition( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr emptyImage( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSCoder coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_stret_eh2" )]
			public static extern void extent( out CGRect ___structAddress, int ___structSize, RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filteredImage_keysAndValues_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject image, NObjective.RuntimeObject keysAndValues );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageByApplyingTransform_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGAffineTransform transform );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageByCompositingOverImage_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageByCroppingToRect_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGRect rect );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageByCroppingToRegion_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr region );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageByCroppingToShape_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject shape );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithBitmapData_bytesPerRow_size_format_colorSpace_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSData data, uint bytesPerRow, CGSize size, int format, IntPtr colorSpace );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithCGImage_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithCGImage_options_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr image, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithCGLayer_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr layer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithCGLayer_options_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr layer, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithColor_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CIColor color );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithContentsOfURL_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSURL url );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithContentsOfURL_options_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSURL url, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithCVImageBuffer_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr buffer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithCVImageBuffer_options_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr buffer, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithData_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSData data );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithData_options_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSData data, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithImageProvider_size__format_colorSpace_options_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject provider, uint size, uint unnamedParameter, int format, IntPtr colorSpace, NSDictionary options
			 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithJPEGFile_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject file );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithPNGFile_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject file );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithTexture_size_flipped_colorSpace_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, uint texture, CGSize size, bool flipped, IntPtr colorSpace );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithURL_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject url );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithBitmapData_bytesPerRow_size_format_colorSpace_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSData data, uint bytesPerRow, CGSize size, int format, IntPtr colorSpace );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCGImage_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCGImage_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr image, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCGLayer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr layer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCGLayer_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr layer, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithColor_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CIColor color );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithContentsOfURL_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSURL url );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithContentsOfURL_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSURL url, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCVImageBuffer_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr buffer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCVImageBuffer_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr buffer, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSData data );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithData_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSData data, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithImageProvider_size__format_colorSpace_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject provider, uint size, uint unnamedParameter, int format, IntPtr colorSpace, NSDictionary options
			 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithJPEGFile_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject file );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithJPEGFile_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject file, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithPNGFile_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject file );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithPNGFile_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject file, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithTexture_size_flipped_colorSpace_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, uint texture, CGSize size, bool flipped, IntPtr colorSpace );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithURL_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject url );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void invalidateShape_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject shape );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr noiseImage( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr nullImage( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr opaqueShape( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr promotedImage_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void release( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setCacheHint_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, char hint );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setOpaqueShape_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject shape );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setUserInfo_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject info );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr userInfo( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector cacheHint = "cacheHint";
			public static readonly Selector definition = "definition";
			public static readonly Selector emptyImage = "emptyImage";
			public static readonly Selector encodeWithCoder_ = "encodeWithCoder:";
			public static readonly Selector extent = "extent";
			public static readonly Selector filteredImage_keysAndValues_ = "filteredImage:keysAndValues:";
			public static readonly Selector imageByApplyingTransform_ = "imageByApplyingTransform:";
			public static readonly Selector imageByCompositingOverImage_ = "imageByCompositingOverImage:";
			public static readonly Selector imageByCroppingToRect_ = "imageByCroppingToRect:";
			public static readonly Selector imageByCroppingToRegion_ = "imageByCroppingToRegion:";
			public static readonly Selector imageByCroppingToShape_ = "imageByCroppingToShape:";
			public static readonly Selector imageWithBitmapData_bytesPerRow_size_format_colorSpace_ = "imageWithBitmapData:bytesPerRow:size:format:colorSpace:";
			public static readonly Selector imageWithCGImage_ = "imageWithCGImage:";
			public static readonly Selector imageWithCGImage_options_ = "imageWithCGImage:options:";
			public static readonly Selector imageWithCGLayer_ = "imageWithCGLayer:";
			public static readonly Selector imageWithCGLayer_options_ = "imageWithCGLayer:options:";
			public static readonly Selector imageWithColor_ = "imageWithColor:";
			public static readonly Selector imageWithContentsOfURL_ = "imageWithContentsOfURL:";
			public static readonly Selector imageWithContentsOfURL_options_ = "imageWithContentsOfURL:options:";
			public static readonly Selector imageWithCVImageBuffer_ = "imageWithCVImageBuffer:";
			public static readonly Selector imageWithCVImageBuffer_options_ = "imageWithCVImageBuffer:options:";
			public static readonly Selector imageWithData_ = "imageWithData:";
			public static readonly Selector imageWithData_options_ = "imageWithData:options:";
			public static readonly Selector imageWithImageProvider_size__format_colorSpace_options_ = "imageWithImageProvider:size::format:colorSpace:options:";
			public static readonly Selector imageWithJPEGFile_ = "imageWithJPEGFile:";
			public static readonly Selector imageWithPNGFile_ = "imageWithPNGFile:";
			public static readonly Selector imageWithTexture_size_flipped_colorSpace_ = "imageWithTexture:size:flipped:colorSpace:";
			public static readonly Selector imageWithURL_ = "imageWithURL:";
			public static readonly Selector initWithBitmapData_bytesPerRow_size_format_colorSpace_ = "initWithBitmapData:bytesPerRow:size:format:colorSpace:";
			public static readonly Selector initWithCGImage_ = "initWithCGImage:";
			public static readonly Selector initWithCGImage_options_ = "initWithCGImage:options:";
			public static readonly Selector initWithCGLayer_ = "initWithCGLayer:";
			public static readonly Selector initWithCGLayer_options_ = "initWithCGLayer:options:";
			public static readonly Selector initWithCoder_ = "initWithCoder:";
			public static readonly Selector initWithColor_ = "initWithColor:";
			public static readonly Selector initWithContentsOfURL_ = "initWithContentsOfURL:";
			public static readonly Selector initWithContentsOfURL_options_ = "initWithContentsOfURL:options:";
			public static readonly Selector initWithCVImageBuffer_ = "initWithCVImageBuffer:";
			public static readonly Selector initWithCVImageBuffer_options_ = "initWithCVImageBuffer:options:";
			public static readonly Selector initWithData_ = "initWithData:";
			public static readonly Selector initWithData_options_ = "initWithData:options:";
			public static readonly Selector initWithImageProvider_size__format_colorSpace_options_ = "initWithImageProvider:size::format:colorSpace:options:";
			public static readonly Selector initWithJPEGFile_ = "initWithJPEGFile:";
			public static readonly Selector initWithJPEGFile_options_ = "initWithJPEGFile:options:";
			public static readonly Selector initWithPNGFile_ = "initWithPNGFile:";
			public static readonly Selector initWithPNGFile_options_ = "initWithPNGFile:options:";
			public static readonly Selector initWithTexture_size_flipped_colorSpace_ = "initWithTexture:size:flipped:colorSpace:";
			public static readonly Selector initWithURL_ = "initWithURL:";
			public static readonly Selector invalidateShape_ = "invalidateShape:";
			public static readonly Selector noiseImage = "noiseImage";
			public static readonly Selector nullImage = "nullImage";
			public static readonly Selector opaqueShape = "opaqueShape";
			public static readonly Selector promotedImage_ = "promotedImage:";
			public static readonly Selector release = "release";
			public static readonly Selector setCacheHint_ = "setCacheHint:";
			public static readonly Selector setOpaqueShape_ = "setOpaqueShape:";
			public static readonly Selector setUserInfo_ = "setUserInfo:";
			public static readonly Selector userInfo = "userInfo";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIImageAccumulator : IEquatable<CIImageAccumulator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIImageAccumulator;
		public static implicit operator NSObject( CIImageAccumulator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIImageAccumulator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIImageAccumulator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIImageAccumulator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIImageAccumulator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIImageAccumulator value1, CIImageAccumulator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIImageAccumulator value1, CIImageAccumulator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIImageAccumulator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIImageAccumulator alloc() {
			return new CIImageAccumulator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static CIImageAccumulator imageAccumulatorWithExtent_format_( CGRect extent, int format ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageAccumulatorWithExtent_format_( ClassHandle, CachedSelectors.imageAccumulatorWithExtent_format_, out ___occuredException, sizeof( CGRect ) + sizeof( int ), extent, format );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImageAccumulator( ___result );
		}
		unsafe public void clear() {
			RuntimeObject ___occuredException;
			NativeMethods.clear( Handle, CachedSelectors.clear, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void commitUpdates_( NObjective.RuntimeObject updates ) {
			RuntimeObject ___occuredException;
			NativeMethods.commitUpdates_( Handle, CachedSelectors.commitUpdates_, out ___occuredException, sizeof( NObjective.RuntimeObject ), updates );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public CGRect extent() {
			CGRect ___result;
			RuntimeObject ___occuredException;
			NativeMethods.extent( out ___result, sizeof( CGRect ), Handle, CachedSelectors.extent, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public int format() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.format( Handle, CachedSelectors.format, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public CIImage image() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.image( Handle, CachedSelectors.image, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIImage( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithExtent_format_( CGRect extent, int format ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithExtent_format_( Handle, CachedSelectors.initWithExtent_format_, out ___occuredException, sizeof( CGRect ) + sizeof( int ), extent, format );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void setImage_( CIImage image ) {
			RuntimeObject ___occuredException;
			NativeMethods.setImage_( Handle, CachedSelectors.setImage_, out ___occuredException, sizeof( CIImage ), image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setImage_dirtyRect_( CIImage image, CGRect dirtyRect ) {
			RuntimeObject ___occuredException;
			NativeMethods.setImage_dirtyRect_( Handle, CachedSelectors.setImage_dirtyRect_, out ___occuredException, sizeof( CIImage ) + sizeof( CGRect ), image, dirtyRect );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void clear( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void commitUpdates_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject updates );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_stret_eh2" )]
			public static extern void extent( out CGRect ___structAddress, int ___structSize, RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int format( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr image( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageAccumulatorWithExtent_format_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGRect extent, int format );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithExtent_format_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CGRect extent, int format );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setImage_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CIImage image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setImage_dirtyRect_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CIImage image, CGRect dirtyRect );
		}
		static internal class CachedSelectors {
			public static readonly Selector clear = "clear";
			public static readonly Selector commitUpdates_ = "commitUpdates:";
			public static readonly Selector extent = "extent";
			public static readonly Selector format = "format";
			public static readonly Selector image = "image";
			public static readonly Selector imageAccumulatorWithExtent_format_ = "imageAccumulatorWithExtent:format:";
			public static readonly Selector initWithExtent_format_ = "initWithExtent:format:";
			public static readonly Selector setImage_ = "setImage:";
			public static readonly Selector setImage_dirtyRect_ = "setImage:dirtyRect:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIKaleidoscope : IEquatable<CIKaleidoscope> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIKaleidoscope;
		public static implicit operator CIFilter( CIKaleidoscope value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIKaleidoscope value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIKaleidoscope value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIKaleidoscope value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIKaleidoscope?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIKaleidoscope value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIKaleidoscope value1, CIKaleidoscope value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIKaleidoscope value1, CIKaleidoscope value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIKaleidoscope( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIKaleidoscope alloc() {
			return new CIKaleidoscope( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public void foldPolys_aboutCenterX_Y_atAngle_up_( NObjective.RuntimeObject polys, float aboutCenterX, float Y, float atAngle, char up ) {
			RuntimeObject ___occuredException;
			NativeMethods.foldPolys_aboutCenterX_Y_atAngle_up_( Handle, CachedSelectors.foldPolys_aboutCenterX_Y_atAngle_up_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( char ), polys, aboutCenterX, Y, atAngle, up );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject genFold_aboutAngle_( NObjective.RuntimeObject fold, float aboutAngle ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.genFold_aboutAngle_( Handle, CachedSelectors.genFold_aboutAngle_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ), fold, aboutAngle );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void foldPolys_aboutCenterX_Y_atAngle_up_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject polys, float aboutCenterX, float Y, float atAngle, char up );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr genFold_aboutAngle_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject fold, float aboutAngle );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector foldPolys_aboutCenterX_Y_atAngle_up_ = "foldPolys:aboutCenterX:Y:atAngle:up:";
			public static readonly Selector genFold_aboutAngle_ = "genFold:aboutAngle:";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIKernel : IEquatable<CIKernel> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIKernel;
		public static implicit operator NSObject( CIKernel value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIKernel value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIKernel value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIKernel?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIKernel value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIKernel value1, CIKernel value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIKernel value1, CIKernel value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIKernel( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIKernel alloc() {
			return new CIKernel( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject colorMatrixBiasKernel() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.colorMatrixBiasKernel( ClassHandle, CachedSelectors.colorMatrixBiasKernel, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject internCString_pointer_( System.IntPtr @string, System.IntPtr pointer ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.internCString_pointer_( ClassHandle, CachedSelectors.internCString_pointer_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ), @string, pointer );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NSArray kernelsWithString_( string @string ) {
			RuntimeObject ___occuredException;
			var ___wrappedstring = Runtime.CreateStringProxy( @string );
			var ___result = NativeMethods.kernelsWithString_( ClassHandle, CachedSelectors.kernelsWithString_, out ___occuredException, sizeof( IntPtr ), ___wrappedstring );
			Runtime.ReleaseNativeObject( ___wrappedstring );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NSArray( ___result );
		}
		unsafe public static NObjective.RuntimeObject kernelsWithString_messageLog_( NObjective.RuntimeObject @string, NObjective.RuntimeObject messageLog ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.kernelsWithString_messageLog_( ClassHandle, CachedSelectors.kernelsWithString_messageLog_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), @string, messageLog );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject apply_to_( NObjective.RuntimeObject apply, System.IntPtr to ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.apply_to_( Handle, CachedSelectors.apply_to_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ), apply, to );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject apply_to_options_( NObjective.RuntimeObject apply, System.IntPtr to, NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.apply_to_options_( Handle, CachedSelectors.apply_to_options_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ) + sizeof( NObjective.RuntimeObject ), apply, to, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject apply_to_options1_options2_( NObjective.RuntimeObject apply, NObjective.RuntimeObject to, NObjective.RuntimeObject options1, NObjective.RuntimeObject options2 ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.apply_to_options1_options2_( Handle, CachedSelectors.apply_to_options1_options2_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), apply, to, options1, options2 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCString_noCopy_( System.IntPtr @string, char noCopy ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCString_noCopy_( Handle, CachedSelectors.initWithCString_noCopy_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( char ), @string, noCopy );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public string name() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.name( Handle, CachedSelectors.name, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return Runtime.UnwrapNSString( ___result );
		}
		unsafe public NObjective.RuntimeObject parameters() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.parameters( Handle, CachedSelectors.parameters, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void release() {
			RuntimeObject ___occuredException;
			NativeMethods.release( Handle, CachedSelectors.release, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setROISelector_( NObjective.Selector selector ) {
			RuntimeObject ___occuredException;
			NativeMethods.setROISelector_( Handle, CachedSelectors.setROISelector_, out ___occuredException, sizeof( NObjective.Selector ), selector );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr apply_to_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject apply, System.IntPtr to );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr apply_to_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject apply, System.IntPtr to, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr apply_to_options1_options2_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject apply, NObjective.RuntimeObject to, NObjective.RuntimeObject options1, NObjective.RuntimeObject options2 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr colorMatrixBiasKernel( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCString_noCopy_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr @string, char noCopy );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr internCString_pointer_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr @string, System.IntPtr pointer );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr kernelsWithString_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr @string );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr kernelsWithString_messageLog_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @string, NObjective.RuntimeObject messageLog );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr name( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr parameters( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void release( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setROISelector_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.Selector selector );
		}
		static internal class CachedSelectors {
			public static readonly Selector apply_to_ = "apply:to:";
			public static readonly Selector apply_to_options_ = "apply:to:options:";
			public static readonly Selector apply_to_options1_options2_ = "apply:to:options1:options2:";
			public static readonly Selector colorMatrixBiasKernel = "colorMatrixBiasKernel";
			public static readonly Selector initWithCString_noCopy_ = "initWithCString:noCopy:";
			public static readonly Selector internCString_pointer_ = "internCString:pointer:";
			public static readonly Selector kernelsWithString_ = "kernelsWithString:";
			public static readonly Selector kernelsWithString_messageLog_ = "kernelsWithString:messageLog:";
			public static readonly Selector name = "name";
			public static readonly Selector parameters = "parameters";
			public static readonly Selector release = "release";
			public static readonly Selector setROISelector_ = "setROISelector:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIKuwaharaNagaoFilter : IEquatable<CIKuwaharaNagaoFilter> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIKuwaharaNagaoFilter;
		public static implicit operator CIFilter( CIKuwaharaNagaoFilter value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIKuwaharaNagaoFilter value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIKuwaharaNagaoFilter value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIKuwaharaNagaoFilter value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIKuwaharaNagaoFilter?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIKuwaharaNagaoFilter value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIKuwaharaNagaoFilter value1, CIKuwaharaNagaoFilter value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIKuwaharaNagaoFilter value1, CIKuwaharaNagaoFilter value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIKuwaharaNagaoFilter( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIKuwaharaNagaoFilter alloc() {
			return new CIKuwaharaNagaoFilter( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILanczosBayerReconstruction : IEquatable<CILanczosBayerReconstruction> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILanczosBayerReconstruction;
		public static implicit operator CIFilter( CILanczosBayerReconstruction value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILanczosBayerReconstruction value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILanczosBayerReconstruction value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILanczosBayerReconstruction value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILanczosBayerReconstruction?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILanczosBayerReconstruction value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILanczosBayerReconstruction value1, CILanczosBayerReconstruction value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILanczosBayerReconstruction value1, CILanczosBayerReconstruction value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILanczosBayerReconstruction( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILanczosBayerReconstruction alloc() {
			return new CILanczosBayerReconstruction( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILanczosResize : IEquatable<CILanczosResize> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILanczosResize;
		public static implicit operator CIFilter( CILanczosResize value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILanczosResize value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILanczosResize value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILanczosResize value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILanczosResize?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILanczosResize value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILanczosResize value1, CILanczosResize value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILanczosResize value1, CILanczosResize value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILanczosResize( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILanczosResize alloc() {
			return new CILanczosResize( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject lanczosTable() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.lanczosTable( Handle, CachedSelectors.lanczosTable, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr lanczosTable( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector lanczosTable = "lanczosTable";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILanczosScaleTransform : IEquatable<CILanczosScaleTransform> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILanczosScaleTransform;
		public static implicit operator CIFilter( CILanczosScaleTransform value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILanczosScaleTransform value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILanczosScaleTransform value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILanczosScaleTransform value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILanczosScaleTransform?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILanczosScaleTransform value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILanczosScaleTransform value1, CILanczosScaleTransform value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILanczosScaleTransform value1, CILanczosScaleTransform value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILanczosScaleTransform( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILanczosScaleTransform alloc() {
			return new CILanczosScaleTransform( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject lanczosTable() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.lanczosTable( Handle, CachedSelectors.lanczosTable, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr lanczosTable( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector lanczosTable = "lanczosTable";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILenticularHaloGenerator : IEquatable<CILenticularHaloGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILenticularHaloGenerator;
		public static implicit operator CIFilter( CILenticularHaloGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILenticularHaloGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILenticularHaloGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILenticularHaloGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILenticularHaloGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILenticularHaloGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILenticularHaloGenerator value1, CILenticularHaloGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILenticularHaloGenerator value1, CILenticularHaloGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILenticularHaloGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILenticularHaloGenerator alloc() {
			return new CILenticularHaloGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILightenBlendMode : IEquatable<CILightenBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILightenBlendMode;
		public static implicit operator CIFilter( CILightenBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILightenBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILightenBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILightenBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILightenBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILightenBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILightenBlendMode value1, CILightenBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILightenBlendMode value1, CILightenBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILightenBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILightenBlendMode alloc() {
			return new CILightenBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILinearBumpField : IEquatable<CILinearBumpField> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILinearBumpField;
		public static implicit operator CIFilter( CILinearBumpField value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILinearBumpField value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILinearBumpField value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILinearBumpField value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILinearBumpField?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILinearBumpField value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILinearBumpField value1, CILinearBumpField value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILinearBumpField value1, CILinearBumpField value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILinearBumpField( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILinearBumpField alloc() {
			return new CILinearBumpField( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILinearBurnBlendMode : IEquatable<CILinearBurnBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILinearBurnBlendMode;
		public static implicit operator CIFilter( CILinearBurnBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILinearBurnBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILinearBurnBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILinearBurnBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILinearBurnBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILinearBurnBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILinearBurnBlendMode value1, CILinearBurnBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILinearBurnBlendMode value1, CILinearBurnBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILinearBurnBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILinearBurnBlendMode alloc() {
			return new CILinearBurnBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILinearDodgeBlendMode : IEquatable<CILinearDodgeBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILinearDodgeBlendMode;
		public static implicit operator CIFilter( CILinearDodgeBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILinearDodgeBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILinearDodgeBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILinearDodgeBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILinearDodgeBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILinearDodgeBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILinearDodgeBlendMode value1, CILinearDodgeBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILinearDodgeBlendMode value1, CILinearDodgeBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILinearDodgeBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILinearDodgeBlendMode alloc() {
			return new CILinearDodgeBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILinearGradient : IEquatable<CILinearGradient> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILinearGradient;
		public static implicit operator CIFilter( CILinearGradient value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILinearGradient value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILinearGradient value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILinearGradient value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILinearGradient?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILinearGradient value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILinearGradient value1, CILinearGradient value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILinearGradient value1, CILinearGradient value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILinearGradient( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILinearGradient alloc() {
			return new CILinearGradient( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILinearGradientWithCubicEndsGenerator : IEquatable<CILinearGradientWithCubicEndsGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILinearGradientWithCubicEndsGenerator;
		public static implicit operator CIFilter( CILinearGradientWithCubicEndsGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILinearGradientWithCubicEndsGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILinearGradientWithCubicEndsGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILinearGradientWithCubicEndsGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILinearGradientWithCubicEndsGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILinearGradientWithCubicEndsGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILinearGradientWithCubicEndsGenerator value1, CILinearGradientWithCubicEndsGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILinearGradientWithCubicEndsGenerator value1, CILinearGradientWithCubicEndsGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILinearGradientWithCubicEndsGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILinearGradientWithCubicEndsGenerator alloc() {
			return new CILinearGradientWithCubicEndsGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILinearLightBlendMode : IEquatable<CILinearLightBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILinearLightBlendMode;
		public static implicit operator CIFilter( CILinearLightBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILinearLightBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILinearLightBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILinearLightBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILinearLightBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILinearLightBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILinearLightBlendMode value1, CILinearLightBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILinearLightBlendMode value1, CILinearLightBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILinearLightBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILinearLightBlendMode alloc() {
			return new CILinearLightBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILineOverlay : IEquatable<CILineOverlay> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILineOverlay;
		public static implicit operator CIFilter( CILineOverlay value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILineOverlay value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILineOverlay value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILineOverlay value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILineOverlay?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILineOverlay value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILineOverlay value1, CILineOverlay value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILineOverlay value1, CILineOverlay value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILineOverlay( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILineOverlay alloc() {
			return new CILineOverlay( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILineScreen : IEquatable<CILineScreen> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILineScreen;
		public static implicit operator CIFilter( CILineScreen value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILineScreen value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILineScreen value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILineScreen value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILineScreen?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILineScreen value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILineScreen value1, CILineScreen value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILineScreen value1, CILineScreen value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILineScreen( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILineScreen alloc() {
			return new CILineScreen( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILocalContrast : IEquatable<CILocalContrast> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILocalContrast;
		public static implicit operator CIFilter( CILocalContrast value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILocalContrast value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILocalContrast value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILocalContrast value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILocalContrast?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILocalContrast value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILocalContrast value1, CILocalContrast value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILocalContrast value1, CILocalContrast value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILocalContrast( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILocalContrast alloc() {
			return new CILocalContrast( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILuminanceGamutMapping : IEquatable<CILuminanceGamutMapping> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILuminanceGamutMapping;
		public static implicit operator CIFilter( CILuminanceGamutMapping value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILuminanceGamutMapping value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILuminanceGamutMapping value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILuminanceGamutMapping value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILuminanceGamutMapping?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILuminanceGamutMapping value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILuminanceGamutMapping value1, CILuminanceGamutMapping value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILuminanceGamutMapping value1, CILuminanceGamutMapping value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILuminanceGamutMapping( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILuminanceGamutMapping alloc() {
			return new CILuminanceGamutMapping( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILuminescentPremultiplyBlendMode : IEquatable<CILuminescentPremultiplyBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILuminescentPremultiplyBlendMode;
		public static implicit operator CIFilter( CILuminescentPremultiplyBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILuminescentPremultiplyBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILuminescentPremultiplyBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILuminescentPremultiplyBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILuminescentPremultiplyBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILuminescentPremultiplyBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILuminescentPremultiplyBlendMode value1, CILuminescentPremultiplyBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILuminescentPremultiplyBlendMode value1, CILuminescentPremultiplyBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILuminescentPremultiplyBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILuminescentPremultiplyBlendMode alloc() {
			return new CILuminescentPremultiplyBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CILuminosityBlendMode : IEquatable<CILuminosityBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CILuminosityBlendMode;
		public static implicit operator CIFilter( CILuminosityBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CILuminosityBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CILuminosityBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CILuminosityBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CILuminosityBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CILuminosityBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CILuminosityBlendMode value1, CILuminosityBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CILuminosityBlendMode value1, CILuminosityBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CILuminosityBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CILuminosityBlendMode alloc() {
			return new CILuminosityBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMakeShadowMask : IEquatable<CIMakeShadowMask> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMakeShadowMask;
		public static implicit operator CIFilter( CIMakeShadowMask value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMakeShadowMask value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMakeShadowMask value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMakeShadowMask value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMakeShadowMask?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMakeShadowMask value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMakeShadowMask value1, CIMakeShadowMask value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMakeShadowMask value1, CIMakeShadowMask value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMakeShadowMask( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMakeShadowMask alloc() {
			return new CIMakeShadowMask( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMaskToAlpha : IEquatable<CIMaskToAlpha> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMaskToAlpha;
		public static implicit operator CIFilter( CIMaskToAlpha value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMaskToAlpha value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMaskToAlpha value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMaskToAlpha value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMaskToAlpha?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMaskToAlpha value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMaskToAlpha value1, CIMaskToAlpha value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMaskToAlpha value1, CIMaskToAlpha value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMaskToAlpha( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMaskToAlpha alloc() {
			return new CIMaskToAlpha( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMaterialMap : IEquatable<CIMaterialMap> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMaterialMap;
		public static implicit operator CIFilter( CIMaterialMap value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMaterialMap value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMaterialMap value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMaterialMap value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMaterialMap?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMaterialMap value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMaterialMap value1, CIMaterialMap value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMaterialMap value1, CIMaterialMap value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMaterialMap( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMaterialMap alloc() {
			return new CIMaterialMap( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMaterialMapImageLightGenerator : IEquatable<CIMaterialMapImageLightGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMaterialMapImageLightGenerator;
		public static implicit operator CIFilter( CIMaterialMapImageLightGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMaterialMapImageLightGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMaterialMapImageLightGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMaterialMapImageLightGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMaterialMapImageLightGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMaterialMapImageLightGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMaterialMapImageLightGenerator value1, CIMaterialMapImageLightGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMaterialMapImageLightGenerator value1, CIMaterialMapImageLightGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMaterialMapImageLightGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMaterialMapImageLightGenerator alloc() {
			return new CIMaterialMapImageLightGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMaterialMapLightGenerator : IEquatable<CIMaterialMapLightGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMaterialMapLightGenerator;
		public static implicit operator CIFilter( CIMaterialMapLightGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMaterialMapLightGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMaterialMapLightGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMaterialMapLightGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMaterialMapLightGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMaterialMapLightGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMaterialMapLightGenerator value1, CIMaterialMapLightGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMaterialMapLightGenerator value1, CIMaterialMapLightGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMaterialMapLightGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMaterialMapLightGenerator alloc() {
			return new CIMaterialMapLightGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMaterialMapReflectionMapLightGenerator : IEquatable<CIMaterialMapReflectionMapLightGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMaterialMapReflectionMapLightGenerator;
		public static implicit operator CIFilter( CIMaterialMapReflectionMapLightGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMaterialMapReflectionMapLightGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMaterialMapReflectionMapLightGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMaterialMapReflectionMapLightGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMaterialMapReflectionMapLightGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMaterialMapReflectionMapLightGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMaterialMapReflectionMapLightGenerator value1, CIMaterialMapReflectionMapLightGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMaterialMapReflectionMapLightGenerator value1, CIMaterialMapReflectionMapLightGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMaterialMapReflectionMapLightGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMaterialMapReflectionMapLightGenerator alloc() {
			return new CIMaterialMapReflectionMapLightGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMaximumComponent : IEquatable<CIMaximumComponent> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMaximumComponent;
		public static implicit operator CIFilter( CIMaximumComponent value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMaximumComponent value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMaximumComponent value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMaximumComponent value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMaximumComponent?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMaximumComponent value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMaximumComponent value1, CIMaximumComponent value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMaximumComponent value1, CIMaximumComponent value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMaximumComponent( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMaximumComponent alloc() {
			return new CIMaximumComponent( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMaximumCompositing : IEquatable<CIMaximumCompositing> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMaximumCompositing;
		public static implicit operator CIFilter( CIMaximumCompositing value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMaximumCompositing value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMaximumCompositing value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMaximumCompositing value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMaximumCompositing?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMaximumCompositing value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMaximumCompositing value1, CIMaximumCompositing value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMaximumCompositing value1, CIMaximumCompositing value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMaximumCompositing( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMaximumCompositing alloc() {
			return new CIMaximumCompositing( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMedianFilter : IEquatable<CIMedianFilter> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMedianFilter;
		public static implicit operator CIFilter( CIMedianFilter value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMedianFilter value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMedianFilter value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMedianFilter value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMedianFilter?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMedianFilter value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMedianFilter value1, CIMedianFilter value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMedianFilter value1, CIMedianFilter value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMedianFilter( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMedianFilter alloc() {
			return new CIMedianFilter( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMenuAppleGenerator : IEquatable<CIMenuAppleGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMenuAppleGenerator;
		public static implicit operator CIFilter( CIMenuAppleGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMenuAppleGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMenuAppleGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMenuAppleGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMenuAppleGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMenuAppleGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMenuAppleGenerator value1, CIMenuAppleGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMenuAppleGenerator value1, CIMenuAppleGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMenuAppleGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMenuAppleGenerator alloc() {
			return new CIMenuAppleGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMenuBarBlendMode : IEquatable<CIMenuBarBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMenuBarBlendMode;
		public static implicit operator CIFilter( CIMenuBarBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMenuBarBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMenuBarBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMenuBarBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMenuBarBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMenuBarBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMenuBarBlendMode value1, CIMenuBarBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMenuBarBlendMode value1, CIMenuBarBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMenuBarBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMenuBarBlendMode alloc() {
			return new CIMenuBarBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMenuBarGenerator : IEquatable<CIMenuBarGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMenuBarGenerator;
		public static implicit operator CIFilter( CIMenuBarGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMenuBarGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMenuBarGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMenuBarGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMenuBarGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMenuBarGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMenuBarGenerator value1, CIMenuBarGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMenuBarGenerator value1, CIMenuBarGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMenuBarGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMenuBarGenerator alloc() {
			return new CIMenuBarGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMenuGenerator : IEquatable<CIMenuGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMenuGenerator;
		public static implicit operator CIFilter( CIMenuGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMenuGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMenuGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMenuGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMenuGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMenuGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMenuGenerator value1, CIMenuGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMenuGenerator value1, CIMenuGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMenuGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMenuGenerator alloc() {
			return new CIMenuGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMinimumComponent : IEquatable<CIMinimumComponent> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMinimumComponent;
		public static implicit operator CIFilter( CIMinimumComponent value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMinimumComponent value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMinimumComponent value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMinimumComponent value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMinimumComponent?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMinimumComponent value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMinimumComponent value1, CIMinimumComponent value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMinimumComponent value1, CIMinimumComponent value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMinimumComponent( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMinimumComponent alloc() {
			return new CIMinimumComponent( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMinimumCompositing : IEquatable<CIMinimumCompositing> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMinimumCompositing;
		public static implicit operator CIFilter( CIMinimumCompositing value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMinimumCompositing value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMinimumCompositing value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMinimumCompositing value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMinimumCompositing?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMinimumCompositing value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMinimumCompositing value1, CIMinimumCompositing value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMinimumCompositing value1, CIMinimumCompositing value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMinimumCompositing( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMinimumCompositing alloc() {
			return new CIMinimumCompositing( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMixOver : IEquatable<CIMixOver> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMixOver;
		public static implicit operator CIFilter( CIMixOver value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMixOver value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMixOver value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMixOver value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMixOver?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMixOver value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMixOver value1, CIMixOver value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMixOver value1, CIMixOver value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMixOver( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMixOver alloc() {
			return new CIMixOver( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIModTransition : IEquatable<CIModTransition> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIModTransition;
		public static implicit operator CIFilter( CIModTransition value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIModTransition value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIModTransition value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIModTransition value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIModTransition?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIModTransition value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIModTransition value1, CIModTransition value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIModTransition value1, CIModTransition value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIModTransition( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIModTransition alloc() {
			return new CIModTransition( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMorphology : IEquatable<CIMorphology> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMorphology;
		public static implicit operator CIFilter( CIMorphology value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMorphology value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMorphology value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMorphology value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMorphology?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMorphology value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMorphology value1, CIMorphology value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMorphology value1, CIMorphology value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMorphology( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMorphology alloc() {
			return new CIMorphology( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMorphologyGradient : IEquatable<CIMorphologyGradient> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMorphologyGradient;
		public static implicit operator CIFilter( CIMorphologyGradient value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMorphologyGradient value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMorphologyGradient value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMorphologyGradient value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMorphologyGradient?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMorphologyGradient value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMorphologyGradient value1, CIMorphologyGradient value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMorphologyGradient value1, CIMorphologyGradient value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMorphologyGradient( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMorphologyGradient alloc() {
			return new CIMorphologyGradient( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMorphologyLaplacian : IEquatable<CIMorphologyLaplacian> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMorphologyLaplacian;
		public static implicit operator CIFilter( CIMorphologyLaplacian value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMorphologyLaplacian value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMorphologyLaplacian value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMorphologyLaplacian value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMorphologyLaplacian?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMorphologyLaplacian value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMorphologyLaplacian value1, CIMorphologyLaplacian value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMorphologyLaplacian value1, CIMorphologyLaplacian value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMorphologyLaplacian( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMorphologyLaplacian alloc() {
			return new CIMorphologyLaplacian( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CISampleAreaOperation ) )]
	public struct CIMorphologyMax : IEquatable<CIMorphologyMax> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMorphologyMax;
		public static implicit operator CISampleAreaOperation( CIMorphologyMax value ) {
			return new CISampleAreaOperation( value.Handle );
		}
		public static implicit operator CIFilter( CIMorphologyMax value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMorphologyMax value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMorphologyMax value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMorphologyMax value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMorphologyMax?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMorphologyMax value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMorphologyMax value1, CIMorphologyMax value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMorphologyMax value1, CIMorphologyMax value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMorphologyMax( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMorphologyMax alloc() {
			return new CIMorphologyMax( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CISampleAreaOperation ) )]
	public struct CIMorphologyMin : IEquatable<CIMorphologyMin> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMorphologyMin;
		public static implicit operator CISampleAreaOperation( CIMorphologyMin value ) {
			return new CISampleAreaOperation( value.Handle );
		}
		public static implicit operator CIFilter( CIMorphologyMin value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMorphologyMin value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMorphologyMin value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMorphologyMin value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMorphologyMin?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMorphologyMin value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMorphologyMin value1, CIMorphologyMin value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMorphologyMin value1, CIMorphologyMin value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMorphologyMin( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMorphologyMin alloc() {
			return new CIMorphologyMin( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMotionBlur : IEquatable<CIMotionBlur> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMotionBlur;
		public static implicit operator CIFilter( CIMotionBlur value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMotionBlur value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMotionBlur value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMotionBlur value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMotionBlur?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMotionBlur value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMotionBlur value1, CIMotionBlur value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMotionBlur value1, CIMotionBlur value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMotionBlur( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMotionBlur alloc() {
			return new CIMotionBlur( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject blur_pass_( NObjective.RuntimeObject blur, int pass ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blur_pass_( Handle, CachedSelectors.blur_pass_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( int ), blur, pass );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr blur_pass_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject blur, int pass );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector blur_pass_ = "blur:pass:";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMultiplyBlendMode : IEquatable<CIMultiplyBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMultiplyBlendMode;
		public static implicit operator CIFilter( CIMultiplyBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMultiplyBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMultiplyBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMultiplyBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMultiplyBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMultiplyBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMultiplyBlendMode value1, CIMultiplyBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMultiplyBlendMode value1, CIMultiplyBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMultiplyBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMultiplyBlendMode alloc() {
			return new CIMultiplyBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIMultiplyCompositing : IEquatable<CIMultiplyCompositing> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMultiplyCompositing;
		public static implicit operator CIFilter( CIMultiplyCompositing value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIMultiplyCompositing value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMultiplyCompositing value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMultiplyCompositing value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMultiplyCompositing?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMultiplyCompositing value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMultiplyCompositing value1, CIMultiplyCompositing value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMultiplyCompositing value1, CIMultiplyCompositing value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMultiplyCompositing( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMultiplyCompositing alloc() {
			return new CIMultiplyCompositing( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilterShape ) )]
	public struct CIMutableFilterShape : IEquatable<CIMutableFilterShape> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIMutableFilterShape;
		public static implicit operator CIFilterShape( CIMutableFilterShape value ) {
			return new CIFilterShape( value.Handle );
		}
		public static implicit operator NSObject( CIMutableFilterShape value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIMutableFilterShape value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIMutableFilterShape value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIMutableFilterShape?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIMutableFilterShape value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIMutableFilterShape value1, CIMutableFilterShape value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIMutableFilterShape value1, CIMutableFilterShape value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIMutableFilterShape( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIMutableFilterShape alloc() {
			return new CIMutableFilterShape( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public void insetByX_Y_( int x, int Y ) {
			RuntimeObject ___occuredException;
			NativeMethods.insetByX_Y_( Handle, CachedSelectors.insetByX_Y_, out ___occuredException, sizeof( int ) + sizeof( int ), x, Y );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void intersect_( NObjective.RuntimeObject intersect ) {
			RuntimeObject ___occuredException;
			NativeMethods.intersect_( Handle, CachedSelectors.intersect_, out ___occuredException, sizeof( NObjective.RuntimeObject ), intersect );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void subtract_( NObjective.RuntimeObject subtract ) {
			RuntimeObject ___occuredException;
			NativeMethods.subtract_( Handle, CachedSelectors.subtract_, out ___occuredException, sizeof( NObjective.RuntimeObject ), subtract );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void union_( NObjective.RuntimeObject union ) {
			RuntimeObject ___occuredException;
			NativeMethods.union_( Handle, CachedSelectors.union_, out ___occuredException, sizeof( NObjective.RuntimeObject ), union );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void insetByX_Y_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int x, int Y );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void intersect_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject intersect );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void subtract_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject subtract );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void union_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject union );
		}
		static internal class CachedSelectors {
			public static readonly Selector insetByX_Y_ = "insetByX:Y:";
			public static readonly Selector intersect_ = "intersect:";
			public static readonly Selector subtract_ = "subtract:";
			public static readonly Selector union_ = "union:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CINoiseReduction : IEquatable<CINoiseReduction> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CINoiseReduction;
		public static implicit operator CIFilter( CINoiseReduction value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CINoiseReduction value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CINoiseReduction value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CINoiseReduction value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CINoiseReduction?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CINoiseReduction value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CINoiseReduction value1, CINoiseReduction value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CINoiseReduction value1, CINoiseReduction value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CINoiseReduction( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CINoiseReduction alloc() {
			return new CINoiseReduction( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIOpacity : IEquatable<CIOpacity> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIOpacity;
		public static implicit operator CIFilter( CIOpacity value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIOpacity value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIOpacity value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIOpacity value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIOpacity?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIOpacity value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIOpacity value1, CIOpacity value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIOpacity value1, CIOpacity value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIOpacity( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIOpacity alloc() {
			return new CIOpacity( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIContext ) )]
	public struct CIOpenGLContext : IEquatable<CIOpenGLContext> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIOpenGLContext;
		public static implicit operator CIContext( CIOpenGLContext value ) {
			return new CIContext( value.Handle );
		}
		public static implicit operator NSObject( CIOpenGLContext value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIOpenGLContext value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIOpenGLContext value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIOpenGLContext?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIOpenGLContext value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIOpenGLContext value1, CIOpenGLContext value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIOpenGLContext value1, CIOpenGLContext value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIOpenGLContext( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIOpenGLContext alloc() {
			return new CIOpenGLContext( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject contextWithCGLSContext_pixelFormat_( System.IntPtr context, System.IntPtr pixelFormat ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.contextWithCGLSContext_pixelFormat_( ClassHandle, CachedSelectors.contextWithCGLSContext_pixelFormat_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ), context, pixelFormat );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject contextWithCGLSContext_pixelFormat_options_( System.IntPtr context, System.IntPtr pixelFormat, NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.contextWithCGLSContext_pixelFormat_options_( ClassHandle, CachedSelectors.contextWithCGLSContext_pixelFormat_options_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( NObjective.RuntimeObject ), context, pixelFormat, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCGLSContext_pixelFormat_( System.IntPtr context, System.IntPtr pixelFormat ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCGLSContext_pixelFormat_( Handle, CachedSelectors.initWithCGLSContext_pixelFormat_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ), context, pixelFormat );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithCGLSContext_pixelFormat_options_( System.IntPtr context, System.IntPtr pixelFormat, NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCGLSContext_pixelFormat_options_( Handle, CachedSelectors.initWithCGLSContext_pixelFormat_options_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( NObjective.RuntimeObject ), context, pixelFormat, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithOptions_( NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithOptions_( Handle, CachedSelectors.initWithOptions_, out ___occuredException, sizeof( NObjective.RuntimeObject ), options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr contextWithCGLSContext_pixelFormat_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr context, System.IntPtr pixelFormat );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr contextWithCGLSContext_pixelFormat_options_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr context, System.IntPtr pixelFormat, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCGLSContext_pixelFormat_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr context, System.IntPtr pixelFormat );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCGLSContext_pixelFormat_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr context, System.IntPtr pixelFormat, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithOptions_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject options );
		}
		static internal class CachedSelectors {
			public static readonly Selector contextWithCGLSContext_pixelFormat_ = "contextWithCGLSContext:pixelFormat:";
			public static readonly Selector contextWithCGLSContext_pixelFormat_options_ = "contextWithCGLSContext:pixelFormat:options:";
			public static readonly Selector initWithCGLSContext_pixelFormat_ = "initWithCGLSContext:pixelFormat:";
			public static readonly Selector initWithCGLSContext_pixelFormat_options_ = "initWithCGLSContext:pixelFormat:options:";
			public static readonly Selector initWithOptions_ = "initWithOptions:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIContextImpl ) )]
	public struct CIOpenGLContextImpl : IEquatable<CIOpenGLContextImpl> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIOpenGLContextImpl;
		public static implicit operator CIContextImpl( CIOpenGLContextImpl value ) {
			return new CIContextImpl( value.Handle );
		}
		public static implicit operator NSObject( CIOpenGLContextImpl value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIOpenGLContextImpl value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIOpenGLContextImpl value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIOpenGLContextImpl?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIOpenGLContextImpl value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIOpenGLContextImpl value1, CIOpenGLContextImpl value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIOpenGLContextImpl value1, CIOpenGLContextImpl value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIOpenGLContextImpl( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIOpenGLContextImpl alloc() {
			return new CIOpenGLContextImpl( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject initWithCGLSContext_pixelFormat_options_( System.IntPtr context, System.IntPtr pixelFormat, NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCGLSContext_pixelFormat_options_( Handle, CachedSelectors.initWithCGLSContext_pixelFormat_options_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( NObjective.RuntimeObject ), context, pixelFormat, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithGLContext_pixelFormat_vtable_options_( System.IntPtr context, System.IntPtr pixelFormat, System.IntPtr vtable, NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithGLContext_pixelFormat_vtable_options_( Handle, CachedSelectors.initWithGLContext_pixelFormat_vtable_options_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( NObjective.RuntimeObject ), context, pixelFormat, vtable, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void invalidate() {
			RuntimeObject ___occuredException;
			NativeMethods.invalidate( Handle, CachedSelectors.invalidate, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void updateContext() {
			RuntimeObject ___occuredException;
			NativeMethods.updateContext( Handle, CachedSelectors.updateContext, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void updateExtensions() {
			RuntimeObject ___occuredException;
			NativeMethods.updateExtensions( Handle, CachedSelectors.updateExtensions, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCGLSContext_pixelFormat_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr context, System.IntPtr pixelFormat, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithGLContext_pixelFormat_vtable_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr context, System.IntPtr pixelFormat, System.IntPtr vtable, NObjective.RuntimeObject options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void invalidate( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void updateContext( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void updateExtensions( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector initWithCGLSContext_pixelFormat_options_ = "initWithCGLSContext:pixelFormat:options:";
			public static readonly Selector initWithGLContext_pixelFormat_vtable_options_ = "initWithGLContext:pixelFormat:vtable:options:";
			public static readonly Selector invalidate = "invalidate";
			public static readonly Selector updateContext = "updateContext";
			public static readonly Selector updateExtensions = "updateExtensions";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIOpTile : IEquatable<CIOpTile> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIOpTile;
		public static implicit operator CIFilter( CIOpTile value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIOpTile value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIOpTile value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIOpTile value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIOpTile?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIOpTile value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIOpTile value1, CIOpTile value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIOpTile value1, CIOpTile value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIOpTile( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIOpTile alloc() {
			return new CIOpTile( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIOverlayBlendMode : IEquatable<CIOverlayBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIOverlayBlendMode;
		public static implicit operator CIFilter( CIOverlayBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIOverlayBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIOverlayBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIOverlayBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIOverlayBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIOverlayBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIOverlayBlendMode value1, CIOverlayBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIOverlayBlendMode value1, CIOverlayBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIOverlayBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIOverlayBlendMode alloc() {
			return new CIOverlayBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIPageCurlTransition : IEquatable<CIPageCurlTransition> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPageCurlTransition;
		public static implicit operator CIFilter( CIPageCurlTransition value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIPageCurlTransition value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPageCurlTransition value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPageCurlTransition value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPageCurlTransition?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPageCurlTransition value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPageCurlTransition value1, CIPageCurlTransition value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPageCurlTransition value1, CIPageCurlTransition value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPageCurlTransition( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPageCurlTransition alloc() {
			return new CIPageCurlTransition( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIParallelogramTile : IEquatable<CIParallelogramTile> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIParallelogramTile;
		public static implicit operator CIFilter( CIParallelogramTile value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIParallelogramTile value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIParallelogramTile value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIParallelogramTile value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIParallelogramTile?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIParallelogramTile value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIParallelogramTile value1, CIParallelogramTile value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIParallelogramTile value1, CIParallelogramTile value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIParallelogramTile( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIParallelogramTile alloc() {
			return new CIParallelogramTile( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIPartialAreaHistogram : IEquatable<CIPartialAreaHistogram> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPartialAreaHistogram;
		public static implicit operator CIFilter( CIPartialAreaHistogram value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIPartialAreaHistogram value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPartialAreaHistogram value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPartialAreaHistogram value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPartialAreaHistogram?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPartialAreaHistogram value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPartialAreaHistogram value1, CIPartialAreaHistogram value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPartialAreaHistogram value1, CIPartialAreaHistogram value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPartialAreaHistogram( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPartialAreaHistogram alloc() {
			return new CIPartialAreaHistogram( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject forcePromise_( NObjective.RuntimeObject promise ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.forcePromise_( Handle, CachedSelectors.forcePromise_, out ___occuredException, sizeof( NObjective.RuntimeObject ), promise );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr forcePromise_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject promise );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector forcePromise_ = "forcePromise:";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIPatternFill : IEquatable<CIPatternFill> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPatternFill;
		public static implicit operator CIFilter( CIPatternFill value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIPatternFill value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPatternFill value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPatternFill value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPatternFill?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPatternFill value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPatternFill value1, CIPatternFill value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPatternFill value1, CIPatternFill value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPatternFill( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPatternFill alloc() {
			return new CIPatternFill( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIPerspectiveTile : IEquatable<CIPerspectiveTile> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPerspectiveTile;
		public static implicit operator CIFilter( CIPerspectiveTile value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIPerspectiveTile value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPerspectiveTile value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPerspectiveTile value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPerspectiveTile?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPerspectiveTile value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPerspectiveTile value1, CIPerspectiveTile value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPerspectiveTile value1, CIPerspectiveTile value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPerspectiveTile( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPerspectiveTile alloc() {
			return new CIPerspectiveTile( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIPerspectiveTransform : IEquatable<CIPerspectiveTransform> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPerspectiveTransform;
		public static implicit operator CIFilter( CIPerspectiveTransform value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIPerspectiveTransform value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPerspectiveTransform value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPerspectiveTransform value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPerspectiveTransform?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPerspectiveTransform value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPerspectiveTransform value1, CIPerspectiveTransform value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPerspectiveTransform value1, CIPerspectiveTransform value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPerspectiveTransform( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPerspectiveTransform alloc() {
			return new CIPerspectiveTransform( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIPinchDistortion : IEquatable<CIPinchDistortion> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPinchDistortion;
		public static implicit operator CIFilter( CIPinchDistortion value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIPinchDistortion value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPinchDistortion value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPinchDistortion value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPinchDistortion?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPinchDistortion value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPinchDistortion value1, CIPinchDistortion value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPinchDistortion value1, CIPinchDistortion value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPinchDistortion( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPinchDistortion alloc() {
			return new CIPinchDistortion( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIPinLightBlendMode : IEquatable<CIPinLightBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPinLightBlendMode;
		public static implicit operator CIFilter( CIPinLightBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIPinLightBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPinLightBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPinLightBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPinLightBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPinLightBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPinLightBlendMode value1, CIPinLightBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPinLightBlendMode value1, CIPinLightBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPinLightBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPinLightBlendMode alloc() {
			return new CIPinLightBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIPixellate : IEquatable<CIPixellate> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPixellate;
		public static implicit operator CIFilter( CIPixellate value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIPixellate value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPixellate value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPixellate value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPixellate?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPixellate value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPixellate value1, CIPixellate value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPixellate value1, CIPixellate value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPixellate( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPixellate alloc() {
			return new CIPixellate( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIPixelZoom : IEquatable<CIPixelZoom> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPixelZoom;
		public static implicit operator CIFilter( CIPixelZoom value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIPixelZoom value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPixelZoom value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPixelZoom value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPixelZoom?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPixelZoom value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPixelZoom value1, CIPixelZoom value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPixelZoom value1, CIPixelZoom value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPixelZoom( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPixelZoom alloc() {
			return new CIPixelZoom( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIPlugIn : IEquatable<CIPlugIn> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPlugIn;
		public static implicit operator NSObject( CIPlugIn value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPlugIn value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPlugIn value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPlugIn?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPlugIn value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPlugIn value1, CIPlugIn value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPlugIn value1, CIPlugIn value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPlugIn( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPlugIn alloc() {
			return new CIPlugIn( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static void loadAllPlugIns() {
			RuntimeObject ___occuredException;
			NativeMethods.loadAllPlugIns( ClassHandle, CachedSelectors.loadAllPlugIns, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static void loadNonExecutablePlugIns() {
			RuntimeObject ___occuredException;
			NativeMethods.loadNonExecutablePlugIns( ClassHandle, CachedSelectors.loadNonExecutablePlugIns, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static void loadPlugIn_allowNonExecutable_( NSURL @in, bool allowNonExecutable ) {
			RuntimeObject ___occuredException;
			NativeMethods.loadPlugIn_allowNonExecutable_( ClassHandle, CachedSelectors.loadPlugIn_allowNonExecutable_, out ___occuredException, sizeof( NSURL ) + sizeof( bool ), @in, allowNonExecutable );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject initWithURL_allowNonExecutable_( NObjective.RuntimeObject url, char allowNonExecutable ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithURL_allowNonExecutable_( Handle, CachedSelectors.initWithURL_allowNonExecutable_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( char ), url, allowNonExecutable );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public int loadPlugIn() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.loadPlugIn( Handle, CachedSelectors.loadPlugIn, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithURL_allowNonExecutable_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject url, char allowNonExecutable );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void loadAllPlugIns( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void loadNonExecutablePlugIns( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int loadPlugIn( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void loadPlugIn_allowNonExecutable_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSURL @in, bool allowNonExecutable );
		}
		static internal class CachedSelectors {
			public static readonly Selector initWithURL_allowNonExecutable_ = "initWithURL:allowNonExecutable:";
			public static readonly Selector loadAllPlugIns = "loadAllPlugIns";
			public static readonly Selector loadNonExecutablePlugIns = "loadNonExecutablePlugIns";
			public static readonly Selector loadPlugIn = "loadPlugIn";
			public static readonly Selector loadPlugIn_allowNonExecutable_ = "loadPlugIn:allowNonExecutable:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIPlugInStandardFilter : IEquatable<CIPlugInStandardFilter> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPlugInStandardFilter;
		public static implicit operator CIFilter( CIPlugInStandardFilter value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIPlugInStandardFilter value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPlugInStandardFilter value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPlugInStandardFilter value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPlugInStandardFilter?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPlugInStandardFilter value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPlugInStandardFilter value1, CIPlugInStandardFilter value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPlugInStandardFilter value1, CIPlugInStandardFilter value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPlugInStandardFilter( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPlugInStandardFilter alloc() {
			return new CIPlugInStandardFilter( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject initWithDescription_kernelFile_filterBundle_( NObjective.RuntimeObject description, NObjective.RuntimeObject kernelFile, NObjective.RuntimeObject filterBundle ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithDescription_kernelFile_filterBundle_( Handle, CachedSelectors.initWithDescription_kernelFile_filterBundle_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), description, kernelFile, filterBundle );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void loadKernel() {
			RuntimeObject ___occuredException;
			NativeMethods.loadKernel( Handle, CachedSelectors.loadKernel, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithDescription_kernelFile_filterBundle_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject description, NObjective.RuntimeObject kernelFile, NObjective.RuntimeObject filterBundle );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void loadKernel( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector initWithDescription_kernelFile_filterBundle_ = "initWithDescription:kernelFile:filterBundle:";
			public static readonly Selector loadKernel = "loadKernel";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIPointillize : IEquatable<CIPointillize> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPointillize;
		public static implicit operator CIFilter( CIPointillize value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIPointillize value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPointillize value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPointillize value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPointillize?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPointillize value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPointillize value1, CIPointillize value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPointillize value1, CIPointillize value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPointillize( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPointillize alloc() {
			return new CIPointillize( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIImage ) )]
	public struct CIPromise : IEquatable<CIPromise> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPromise;
		public static implicit operator CIImage( CIPromise value ) {
			return new CIImage( value.Handle );
		}
		public static implicit operator NSObject( CIPromise value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPromise value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPromise value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPromise?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPromise value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPromise value1, CIPromise value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPromise value1, CIPromise value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPromise( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPromise alloc() {
			return new CIPromise( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject promise_keysAndValues_( NObjective.RuntimeObject promise, NObjective.RuntimeObject keysAndValues ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.promise_keysAndValues_( ClassHandle, CachedSelectors.promise_keysAndValues_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), promise, keysAndValues );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithFilter_options__( NObjective.RuntimeObject filter, NObjective.RuntimeObject options, System.IntPtr unnamedParameter ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithFilter_options__( Handle, CachedSelectors.initWithFilter_options__, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ), filter, options, unnamedParameter );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void setSelector_( NObjective.Selector selector ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSelector_( Handle, CachedSelectors.setSelector_, out ___occuredException, sizeof( NObjective.Selector ), selector );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithFilter_options__( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject filter, NObjective.RuntimeObject options, System.IntPtr unnamedParameter );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr promise_keysAndValues_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject promise, NObjective.RuntimeObject keysAndValues );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSelector_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.Selector selector );
		}
		static internal class CachedSelectors {
			public static readonly Selector initWithFilter_options__ = "initWithFilter:options::";
			public static readonly Selector promise_keysAndValues_ = "promise:keysAndValues:";
			public static readonly Selector setSelector_ = "setSelector:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIPromiseInvocation : IEquatable<CIPromiseInvocation> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPromiseInvocation;
		public static implicit operator NSObject( CIPromiseInvocation value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPromiseInvocation value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPromiseInvocation value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPromiseInvocation?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPromiseInvocation value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPromiseInvocation value1, CIPromiseInvocation value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPromiseInvocation value1, CIPromiseInvocation value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPromiseInvocation( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPromiseInvocation alloc() {
			return new CIPromiseInvocation( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject context() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.context( Handle, CachedSelectors.context, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject contextObjectForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.contextObjectForKey_( Handle, CachedSelectors.contextObjectForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr context( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr contextObjectForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
		}
		static internal class CachedSelectors {
			public static readonly Selector context = "context";
			public static readonly Selector contextObjectForKey_ = "contextObjectForKey:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIProSharpen : IEquatable<CIProSharpen> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIProSharpen;
		public static implicit operator CIFilter( CIProSharpen value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIProSharpen value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIProSharpen value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIProSharpen value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIProSharpen?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIProSharpen value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIProSharpen value1, CIProSharpen value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIProSharpen value1, CIProSharpen value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIProSharpen( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIProSharpen alloc() {
			return new CIProSharpen( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIProSharpenEdges : IEquatable<CIProSharpenEdges> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIProSharpenEdges;
		public static implicit operator CIFilter( CIProSharpenEdges value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIProSharpenEdges value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIProSharpenEdges value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIProSharpenEdges value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIProSharpenEdges?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIProSharpenEdges value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIProSharpenEdges value1, CIProSharpenEdges value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIProSharpenEdges value1, CIProSharpenEdges value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIProSharpenEdges( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIProSharpenEdges alloc() {
			return new CIProSharpenEdges( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIProSharpeningEdgesDisplay : IEquatable<CIProSharpeningEdgesDisplay> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIProSharpeningEdgesDisplay;
		public static implicit operator CIFilter( CIProSharpeningEdgesDisplay value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIProSharpeningEdgesDisplay value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIProSharpeningEdgesDisplay value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIProSharpeningEdgesDisplay value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIProSharpeningEdgesDisplay?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIProSharpeningEdgesDisplay value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIProSharpeningEdgesDisplay value1, CIProSharpeningEdgesDisplay value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIProSharpeningEdgesDisplay value1, CIProSharpeningEdgesDisplay value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIProSharpeningEdgesDisplay( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIProSharpeningEdgesDisplay alloc() {
			return new CIProSharpeningEdgesDisplay( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIPseudoMedian : IEquatable<CIPseudoMedian> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIPseudoMedian;
		public static implicit operator CIFilter( CIPseudoMedian value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIPseudoMedian value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIPseudoMedian value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIPseudoMedian value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIPseudoMedian?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIPseudoMedian value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIPseudoMedian value1, CIPseudoMedian value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIPseudoMedian value1, CIPseudoMedian value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIPseudoMedian( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIPseudoMedian alloc() {
			return new CIPseudoMedian( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIRadialGradient : IEquatable<CIRadialGradient> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRadialGradient;
		public static implicit operator CIFilter( CIRadialGradient value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIRadialGradient value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRadialGradient value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRadialGradient value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRadialGradient?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRadialGradient value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRadialGradient value1, CIRadialGradient value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRadialGradient value1, CIRadialGradient value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRadialGradient( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRadialGradient alloc() {
			return new CIRadialGradient( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIRandomGenerator : IEquatable<CIRandomGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRandomGenerator;
		public static implicit operator CIFilter( CIRandomGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIRandomGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRandomGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRandomGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRandomGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRandomGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRandomGenerator value1, CIRandomGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRandomGenerator value1, CIRandomGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRandomGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRandomGenerator alloc() {
			return new CIRandomGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIRAWFilterImpl : IEquatable<CIRAWFilterImpl> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRAWFilterImpl;
		public static implicit operator CIFilter( CIRAWFilterImpl value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIRAWFilterImpl value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRAWFilterImpl value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRAWFilterImpl value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRAWFilterImpl?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRAWFilterImpl value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRAWFilterImpl value1, CIRAWFilterImpl value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRAWFilterImpl value1, CIRAWFilterImpl value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRAWFilterImpl( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRAWFilterImpl alloc() {
			return new CIRAWFilterImpl( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject applyMatrix_toCIImage_( System.IntPtr matrix, NObjective.RuntimeObject toCIImage ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.applyMatrix_toCIImage_( ClassHandle, CachedSelectors.applyMatrix_toCIImage_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( NObjective.RuntimeObject ), matrix, toCIImage );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static char automaticallyNotifiesObserversForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.automaticallyNotifiesObserversForKey_( ClassHandle, CachedSelectors.automaticallyNotifiesObserversForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static void convertNeutralTemperature_tint_toX_y_( NObjective.RuntimeObject temperature, NObjective.RuntimeObject tint, System.IntPtr toX, System.IntPtr y ) {
			RuntimeObject ___occuredException;
			NativeMethods.convertNeutralTemperature_tint_toX_y_( ClassHandle, CachedSelectors.convertNeutralTemperature_tint_toX_y_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ), temperature, tint, toX, y );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static void convertNeutralX_y_toTemperature_tint_( NObjective.RuntimeObject x, NObjective.RuntimeObject y, System.IntPtr toTemperature, System.IntPtr tint ) {
			RuntimeObject ___occuredException;
			NativeMethods.convertNeutralX_y_toTemperature_tint_( ClassHandle, CachedSelectors.convertNeutralX_y_toTemperature_tint_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ), x, y, toTemperature, tint );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static NObjective.RuntimeObject optionKeys() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.optionKeys( ClassHandle, CachedSelectors.optionKeys, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject defaultBoostShadowAmount() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.defaultBoostShadowAmount( Handle, CachedSelectors.defaultBoostShadowAmount, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject defaultDecoderVersion() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.defaultDecoderVersion( Handle, CachedSelectors.defaultDecoderVersion, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject defaultImageOrientation() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.defaultImageOrientation( Handle, CachedSelectors.defaultImageOrientation, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject defaultNeutralChromaticityX() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.defaultNeutralChromaticityX( Handle, CachedSelectors.defaultNeutralChromaticityX, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject defaultNeutralChromaticityY() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.defaultNeutralChromaticityY( Handle, CachedSelectors.defaultNeutralChromaticityY, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject defaultNeutralTemperature() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.defaultNeutralTemperature( Handle, CachedSelectors.defaultNeutralTemperature, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject defaultNeutralTint() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.defaultNeutralTint( Handle, CachedSelectors.defaultNeutralTint, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject filters() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.filters( Handle, CachedSelectors.filters, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void getWhitePointVectorsR_g_b_( System.IntPtr r, System.IntPtr g, System.IntPtr b ) {
			RuntimeObject ___occuredException;
			NativeMethods.getWhitePointVectorsR_g_b_( Handle, CachedSelectors.getWhitePointVectorsR_g_b_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ), r, g, b );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public char hasRawImageSource() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.hasRawImageSource( Handle, CachedSelectors.hasRawImageSource, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject inputBias() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.inputBias( Handle, CachedSelectors.inputBias, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject inputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.inputImage( Handle, CachedSelectors.inputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject inputNeutralChromaticityX() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.inputNeutralChromaticityX( Handle, CachedSelectors.inputNeutralChromaticityX, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject inputNeutralChromaticityY() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.inputNeutralChromaticityY( Handle, CachedSelectors.inputNeutralChromaticityY, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject inputNeutralLocation() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.inputNeutralLocation( Handle, CachedSelectors.inputNeutralLocation, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject inputNeutralTemperature() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.inputNeutralTemperature( Handle, CachedSelectors.inputNeutralTemperature, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject inputNeutralTint() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.inputNeutralTint( Handle, CachedSelectors.inputNeutralTint, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void invalidateCoreGraphicsImage() {
			RuntimeObject ___occuredException;
			NativeMethods.invalidateCoreGraphicsImage( Handle, CachedSelectors.invalidateCoreGraphicsImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void invalidateFilters() {
			RuntimeObject ___occuredException;
			NativeMethods.invalidateFilters( Handle, CachedSelectors.invalidateFilters, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void invalidateInputImage() {
			RuntimeObject ___occuredException;
			NativeMethods.invalidateInputImage( Handle, CachedSelectors.invalidateInputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void invalidateTransformedImage() {
			RuntimeObject ___occuredException;
			NativeMethods.invalidateTransformedImage( Handle, CachedSelectors.invalidateTransformedImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject rawDictionary() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.rawDictionary( Handle, CachedSelectors.rawDictionary, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject rawOptions() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.rawOptions( Handle, CachedSelectors.rawOptions, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void setInputBias_( NObjective.RuntimeObject bias ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputBias_( Handle, CachedSelectors.setInputBias_, out ___occuredException, sizeof( NObjective.RuntimeObject ), bias );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputBoost_( NObjective.RuntimeObject boost ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputBoost_( Handle, CachedSelectors.setInputBoost_, out ___occuredException, sizeof( NObjective.RuntimeObject ), boost );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputBoostShadowAmount_( NObjective.RuntimeObject amount ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputBoostShadowAmount_( Handle, CachedSelectors.setInputBoostShadowAmount_, out ___occuredException, sizeof( NObjective.RuntimeObject ), amount );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputDecoderVersion_( NObjective.RuntimeObject version ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputDecoderVersion_( Handle, CachedSelectors.setInputDecoderVersion_, out ___occuredException, sizeof( NObjective.RuntimeObject ), version );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputDraftMode_( NObjective.RuntimeObject mode ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputDraftMode_( Handle, CachedSelectors.setInputDraftMode_, out ___occuredException, sizeof( NObjective.RuntimeObject ), mode );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputEnableNoiseTracking_( NObjective.RuntimeObject tracking ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputEnableNoiseTracking_( Handle, CachedSelectors.setInputEnableNoiseTracking_, out ___occuredException, sizeof( NObjective.RuntimeObject ), tracking );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputEnableSharpening_( NObjective.RuntimeObject sharpening ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputEnableSharpening_( Handle, CachedSelectors.setInputEnableSharpening_, out ___occuredException, sizeof( NObjective.RuntimeObject ), sharpening );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputEV_( NObjective.RuntimeObject ev ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputEV_( Handle, CachedSelectors.setInputEV_, out ___occuredException, sizeof( NObjective.RuntimeObject ), ev );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputIgnoreOrientation_( NObjective.RuntimeObject orientation ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputIgnoreOrientation_( Handle, CachedSelectors.setInputIgnoreOrientation_, out ___occuredException, sizeof( NObjective.RuntimeObject ), orientation );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputImage_( NObjective.RuntimeObject image ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputImage_( Handle, CachedSelectors.setInputImage_, out ___occuredException, sizeof( NObjective.RuntimeObject ), image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputImageOrientation_( NObjective.RuntimeObject orientation ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputImageOrientation_( Handle, CachedSelectors.setInputImageOrientation_, out ___occuredException, sizeof( NObjective.RuntimeObject ), orientation );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputNeutralChromaticityX_( NObjective.RuntimeObject x ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputNeutralChromaticityX_( Handle, CachedSelectors.setInputNeutralChromaticityX_, out ___occuredException, sizeof( NObjective.RuntimeObject ), x );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputNeutralChromaticityY_( NObjective.RuntimeObject y ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputNeutralChromaticityY_( Handle, CachedSelectors.setInputNeutralChromaticityY_, out ___occuredException, sizeof( NObjective.RuntimeObject ), y );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputNeutralLocation_( NObjective.RuntimeObject location ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputNeutralLocation_( Handle, CachedSelectors.setInputNeutralLocation_, out ___occuredException, sizeof( NObjective.RuntimeObject ), location );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputNeutralTemperature_( NObjective.RuntimeObject temperature ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputNeutralTemperature_( Handle, CachedSelectors.setInputNeutralTemperature_, out ___occuredException, sizeof( NObjective.RuntimeObject ), temperature );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputNeutralTint_( NObjective.RuntimeObject tint ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputNeutralTint_( Handle, CachedSelectors.setInputNeutralTint_, out ___occuredException, sizeof( NObjective.RuntimeObject ), tint );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInputScaleFactor_( NObjective.RuntimeObject factor ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInputScaleFactor_( Handle, CachedSelectors.setInputScaleFactor_, out ___occuredException, sizeof( NObjective.RuntimeObject ), factor );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public int subsampling() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.subsampling( Handle, CachedSelectors.subsampling, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject supportedDecoderVersions() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.supportedDecoderVersions( Handle, CachedSelectors.supportedDecoderVersions, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject transformedImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.transformedImage( Handle, CachedSelectors.transformedImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void updateChomaticityXAndY() {
			RuntimeObject ___occuredException;
			NativeMethods.updateChomaticityXAndY( Handle, CachedSelectors.updateChomaticityXAndY, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void updateTemperatureAndTint() {
			RuntimeObject ___occuredException;
			NativeMethods.updateTemperatureAndTint( Handle, CachedSelectors.updateTemperatureAndTint, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject whitePoint() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.whitePoint( Handle, CachedSelectors.whitePoint, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject whitePointArray() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.whitePointArray( Handle, CachedSelectors.whitePointArray, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr applyMatrix_toCIImage_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr matrix, NObjective.RuntimeObject toCIImage );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char automaticallyNotifiesObserversForKey_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void convertNeutralTemperature_tint_toX_y_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject temperature, NObjective.RuntimeObject tint, System.IntPtr toX, System.IntPtr y );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void convertNeutralX_y_toTemperature_tint_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject x, NObjective.RuntimeObject y, System.IntPtr toTemperature, System.IntPtr tint );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr defaultBoostShadowAmount( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr defaultDecoderVersion( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr defaultImageOrientation( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr defaultNeutralChromaticityX( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr defaultNeutralChromaticityY( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr defaultNeutralTemperature( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr defaultNeutralTint( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr filters( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void getWhitePointVectorsR_g_b_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr r, System.IntPtr g, System.IntPtr b );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char hasRawImageSource( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr inputBias( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr inputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr inputNeutralChromaticityX( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr inputNeutralChromaticityY( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr inputNeutralLocation( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr inputNeutralTemperature( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr inputNeutralTint( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void invalidateCoreGraphicsImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void invalidateFilters( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void invalidateInputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void invalidateTransformedImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr optionKeys( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr rawDictionary( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr rawOptions( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputBias_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject bias );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputBoost_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject boost );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputBoostShadowAmount_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject amount );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputDecoderVersion_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject version );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputDraftMode_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject mode );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputEnableNoiseTracking_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject tracking );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputEnableSharpening_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject sharpening );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputEV_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject ev );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputIgnoreOrientation_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject orientation );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputImage_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputImageOrientation_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject orientation );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputNeutralChromaticityX_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject x );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputNeutralChromaticityY_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject y );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputNeutralLocation_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject location );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputNeutralTemperature_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject temperature );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputNeutralTint_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject tint );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInputScaleFactor_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject factor );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int subsampling( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr supportedDecoderVersions( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr transformedImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void updateChomaticityXAndY( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void updateTemperatureAndTint( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr whitePoint( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr whitePointArray( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector applyMatrix_toCIImage_ = "applyMatrix:toCIImage:";
			public static readonly Selector automaticallyNotifiesObserversForKey_ = "automaticallyNotifiesObserversForKey:";
			public static readonly Selector convertNeutralTemperature_tint_toX_y_ = "convertNeutralTemperature:tint:toX:y:";
			public static readonly Selector convertNeutralX_y_toTemperature_tint_ = "convertNeutralX:y:toTemperature:tint:";
			public static readonly Selector defaultBoostShadowAmount = "defaultBoostShadowAmount";
			public static readonly Selector defaultDecoderVersion = "defaultDecoderVersion";
			public static readonly Selector defaultImageOrientation = "defaultImageOrientation";
			public static readonly Selector defaultNeutralChromaticityX = "defaultNeutralChromaticityX";
			public static readonly Selector defaultNeutralChromaticityY = "defaultNeutralChromaticityY";
			public static readonly Selector defaultNeutralTemperature = "defaultNeutralTemperature";
			public static readonly Selector defaultNeutralTint = "defaultNeutralTint";
			public static readonly Selector filters = "filters";
			public static readonly Selector getWhitePointVectorsR_g_b_ = "getWhitePointVectorsR:g:b:";
			public static readonly Selector hasRawImageSource = "hasRawImageSource";
			public static readonly Selector inputBias = "inputBias";
			public static readonly Selector inputImage = "inputImage";
			public static readonly Selector inputNeutralChromaticityX = "inputNeutralChromaticityX";
			public static readonly Selector inputNeutralChromaticityY = "inputNeutralChromaticityY";
			public static readonly Selector inputNeutralLocation = "inputNeutralLocation";
			public static readonly Selector inputNeutralTemperature = "inputNeutralTemperature";
			public static readonly Selector inputNeutralTint = "inputNeutralTint";
			public static readonly Selector invalidateCoreGraphicsImage = "invalidateCoreGraphicsImage";
			public static readonly Selector invalidateFilters = "invalidateFilters";
			public static readonly Selector invalidateInputImage = "invalidateInputImage";
			public static readonly Selector invalidateTransformedImage = "invalidateTransformedImage";
			public static readonly Selector optionKeys = "optionKeys";
			public static readonly Selector outputImage = "outputImage";
			public static readonly Selector rawDictionary = "rawDictionary";
			public static readonly Selector rawOptions = "rawOptions";
			public static readonly Selector setInputBias_ = "setInputBias:";
			public static readonly Selector setInputBoost_ = "setInputBoost:";
			public static readonly Selector setInputBoostShadowAmount_ = "setInputBoostShadowAmount:";
			public static readonly Selector setInputDecoderVersion_ = "setInputDecoderVersion:";
			public static readonly Selector setInputDraftMode_ = "setInputDraftMode:";
			public static readonly Selector setInputEnableNoiseTracking_ = "setInputEnableNoiseTracking:";
			public static readonly Selector setInputEnableSharpening_ = "setInputEnableSharpening:";
			public static readonly Selector setInputEV_ = "setInputEV:";
			public static readonly Selector setInputIgnoreOrientation_ = "setInputIgnoreOrientation:";
			public static readonly Selector setInputImage_ = "setInputImage:";
			public static readonly Selector setInputImageOrientation_ = "setInputImageOrientation:";
			public static readonly Selector setInputNeutralChromaticityX_ = "setInputNeutralChromaticityX:";
			public static readonly Selector setInputNeutralChromaticityY_ = "setInputNeutralChromaticityY:";
			public static readonly Selector setInputNeutralLocation_ = "setInputNeutralLocation:";
			public static readonly Selector setInputNeutralTemperature_ = "setInputNeutralTemperature:";
			public static readonly Selector setInputNeutralTint_ = "setInputNeutralTint:";
			public static readonly Selector setInputScaleFactor_ = "setInputScaleFactor:";
			public static readonly Selector subsampling = "subsampling";
			public static readonly Selector supportedDecoderVersions = "supportedDecoderVersions";
			public static readonly Selector transformedImage = "transformedImage";
			public static readonly Selector updateChomaticityXAndY = "updateChomaticityXAndY";
			public static readonly Selector updateTemperatureAndTint = "updateTemperatureAndTint";
			public static readonly Selector whitePoint = "whitePoint";
			public static readonly Selector whitePointArray = "whitePointArray";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIRAWGamutMapping : IEquatable<CIRAWGamutMapping> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRAWGamutMapping;
		public static implicit operator CIFilter( CIRAWGamutMapping value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIRAWGamutMapping value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRAWGamutMapping value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRAWGamutMapping value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRAWGamutMapping?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRAWGamutMapping value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRAWGamutMapping value1, CIRAWGamutMapping value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRAWGamutMapping value1, CIRAWGamutMapping value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRAWGamutMapping( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRAWGamutMapping alloc() {
			return new CIRAWGamutMapping( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIRAWSharpen : IEquatable<CIRAWSharpen> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRAWSharpen;
		public static implicit operator CIFilter( CIRAWSharpen value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIRAWSharpen value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRAWSharpen value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRAWSharpen value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRAWSharpen?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRAWSharpen value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRAWSharpen value1, CIRAWSharpen value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRAWSharpen value1, CIRAWSharpen value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRAWSharpen( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRAWSharpen alloc() {
			return new CIRAWSharpen( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIRAWTemperatureAdjust : IEquatable<CIRAWTemperatureAdjust> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRAWTemperatureAdjust;
		public static implicit operator CIFilter( CIRAWTemperatureAdjust value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIRAWTemperatureAdjust value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRAWTemperatureAdjust value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRAWTemperatureAdjust value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRAWTemperatureAdjust?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRAWTemperatureAdjust value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRAWTemperatureAdjust value1, CIRAWTemperatureAdjust value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRAWTemperatureAdjust value1, CIRAWTemperatureAdjust value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRAWTemperatureAdjust( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRAWTemperatureAdjust alloc() {
			return new CIRAWTemperatureAdjust( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIContext ) )]
	public struct CIRecordingContext : IEquatable<CIRecordingContext> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRecordingContext;
		public static implicit operator CIContext( CIRecordingContext value ) {
			return new CIContext( value.Handle );
		}
		public static implicit operator NSObject( CIRecordingContext value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRecordingContext value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRecordingContext value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRecordingContext?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRecordingContext value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRecordingContext value1, CIRecordingContext value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRecordingContext value1, CIRecordingContext value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRecordingContext( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRecordingContext alloc() {
			return new CIRecordingContext( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject initWithOptions_( NObjective.RuntimeObject options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithOptions_( Handle, CachedSelectors.initWithOptions_, out ___occuredException, sizeof( NObjective.RuntimeObject ), options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithOptions_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject options );
		}
		static internal class CachedSelectors {
			public static readonly Selector initWithOptions_ = "initWithOptions:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIContextImpl ) )]
	public struct CIRecordingContextImpl : IEquatable<CIRecordingContextImpl> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRecordingContextImpl;
		public static implicit operator CIContextImpl( CIRecordingContextImpl value ) {
			return new CIContextImpl( value.Handle );
		}
		public static implicit operator NSObject( CIRecordingContextImpl value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRecordingContextImpl value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRecordingContextImpl value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRecordingContextImpl?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRecordingContextImpl value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRecordingContextImpl value1, CIRecordingContextImpl value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRecordingContextImpl value1, CIRecordingContextImpl value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRecordingContextImpl( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRecordingContextImpl alloc() {
			return new CIRecordingContextImpl( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIRectangleGenerator : IEquatable<CIRectangleGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRectangleGenerator;
		public static implicit operator CIFilter( CIRectangleGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIRectangleGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRectangleGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRectangleGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRectangleGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRectangleGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRectangleGenerator value1, CIRectangleGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRectangleGenerator value1, CIRectangleGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRectangleGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRectangleGenerator alloc() {
			return new CIRectangleGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIRectsGenerator : IEquatable<CIRectsGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRectsGenerator;
		public static implicit operator CIFilter( CIRectsGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIRectsGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRectsGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRectsGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRectsGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRectsGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRectsGenerator value1, CIRectsGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRectsGenerator value1, CIRectsGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRectsGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRectsGenerator alloc() {
			return new CIRectsGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIRefractedMaterial : IEquatable<CIRefractedMaterial> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRefractedMaterial;
		public static implicit operator CIFilter( CIRefractedMaterial value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIRefractedMaterial value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRefractedMaterial value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRefractedMaterial value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRefractedMaterial?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRefractedMaterial value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRefractedMaterial value1, CIRefractedMaterial value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRefractedMaterial value1, CIRefractedMaterial value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRefractedMaterial( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRefractedMaterial alloc() {
			return new CIRefractedMaterial( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIRenderProviderDelegate : IEquatable<CIRenderProviderDelegate> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRenderProviderDelegate;
		public static implicit operator NSObject( CIRenderProviderDelegate value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRenderProviderDelegate value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRenderProviderDelegate value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRenderProviderDelegate?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRenderProviderDelegate value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRenderProviderDelegate value1, CIRenderProviderDelegate value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRenderProviderDelegate value1, CIRenderProviderDelegate value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRenderProviderDelegate( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRenderProviderDelegate alloc() {
			return new CIRenderProviderDelegate( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public void provideImageData_bytesPerRow_origin__size__userInfo_( System.IntPtr data, uint bytesPerRow, uint origin, uint unnamedParameter, uint size, uint unnamedParameter2, NObjective.RuntimeObject userInfo ) {
			RuntimeObject ___occuredException;
			NativeMethods.provideImageData_bytesPerRow_origin__size__userInfo_( Handle, CachedSelectors.provideImageData_bytesPerRow_origin__size__userInfo_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( uint ) + sizeof( uint ) + sizeof( uint ) + sizeof( uint ) + sizeof( uint ) + sizeof( NObjective.RuntimeObject ), data, bytesPerRow, origin, unnamedParameter, size, unnamedParameter2, 
			userInfo );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void provideImageData_bytesPerRow_origin__size__userInfo_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data, uint bytesPerRow, uint origin, uint unnamedParameter, uint size, uint unnamedParameter2, 
			NObjective.RuntimeObject userInfo );
		}
		static internal class CachedSelectors {
			public static readonly Selector provideImageData_bytesPerRow_origin__size__userInfo_ = "provideImageData:bytesPerRow:origin::size::userInfo:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIRippleTransition : IEquatable<CIRippleTransition> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRippleTransition;
		public static implicit operator CIFilter( CIRippleTransition value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIRippleTransition value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRippleTransition value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRippleTransition value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRippleTransition?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRippleTransition value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRippleTransition value1, CIRippleTransition value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRippleTransition value1, CIRippleTransition value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRippleTransition( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRippleTransition alloc() {
			return new CIRippleTransition( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIRotatingCubeTransition : IEquatable<CIRotatingCubeTransition> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRotatingCubeTransition;
		public static implicit operator CIFilter( CIRotatingCubeTransition value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIRotatingCubeTransition value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRotatingCubeTransition value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRotatingCubeTransition value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRotatingCubeTransition?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRotatingCubeTransition value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRotatingCubeTransition value1, CIRotatingCubeTransition value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRotatingCubeTransition value1, CIRotatingCubeTransition value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRotatingCubeTransition( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRotatingCubeTransition alloc() {
			return new CIRotatingCubeTransition( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIColumnAverage ) )]
	public struct CIRowAverage : IEquatable<CIRowAverage> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIRowAverage;
		public static implicit operator CIColumnAverage( CIRowAverage value ) {
			return new CIColumnAverage( value.Handle );
		}
		public static implicit operator CIFilter( CIRowAverage value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIRowAverage value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIRowAverage value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIRowAverage value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIRowAverage?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIRowAverage value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIRowAverage value1, CIRowAverage value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIRowAverage value1, CIRowAverage value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIRowAverage( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIRowAverage alloc() {
			return new CIRowAverage( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISampleAreaOperation : IEquatable<CISampleAreaOperation> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISampleAreaOperation;
		public static implicit operator CIFilter( CISampleAreaOperation value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISampleAreaOperation value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISampleAreaOperation value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISampleAreaOperation value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISampleAreaOperation?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISampleAreaOperation value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISampleAreaOperation value1, CISampleAreaOperation value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISampleAreaOperation value1, CISampleAreaOperation value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISampleAreaOperation( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISampleAreaOperation alloc() {
			return new CISampleAreaOperation( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject doPass_sums_( NObjective.RuntimeObject pass, NObjective.RuntimeObject sums ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.doPass_sums_( Handle, CachedSelectors.doPass_sums_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), pass, sums );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public int samplesPerPass() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.samplesPerPass( Handle, CachedSelectors.samplesPerPass, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr doPass_sums_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject pass, NObjective.RuntimeObject sums );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int samplesPerPass( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector doPass_sums_ = "doPass:sums:";
			public static readonly Selector outputImage = "outputImage";
			public static readonly Selector samplesPerPass = "samplesPerPass";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CISampler : IEquatable<CISampler> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISampler;
		public static implicit operator NSObject( CISampler value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISampler value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISampler value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISampler?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISampler value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISampler value1, CISampler value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISampler value1, CISampler value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISampler( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISampler alloc() {
			return new CISampler( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static CISampler samplerWithImage_( CIImage image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.samplerWithImage_( ClassHandle, CachedSelectors.samplerWithImage_, out ___occuredException, sizeof( CIImage ), image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CISampler( ___result );
		}
		public static CISampler samplerWithImage_keysAndValues_( CIImage image, NObjective.RuntimeObject keysAndValues, params object[] variableArguments ) {
			return new CISampler( ClassHandle.InvokeObjectFast( CachedSelectors.samplerWithImage_keysAndValues_, CachedEncodings.__19F8A84A, image, keysAndValues, variableArguments ) );
		}
		unsafe public static CISampler samplerWithImage_options_( CIImage image, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.samplerWithImage_options_( ClassHandle, CachedSelectors.samplerWithImage_options_, out ___occuredException, sizeof( CIImage ) + sizeof( NSDictionary ), image, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CISampler( ___result );
		}
		unsafe public NObjective.RuntimeObject apply_( NObjective.RuntimeObject apply ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.apply_( Handle, CachedSelectors.apply_, out ___occuredException, sizeof( NObjective.RuntimeObject ), apply );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public System.IntPtr colorSpace() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.colorSpace( Handle, CachedSelectors.colorSpace, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public CIFilterShape definition() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.definition( Handle, CachedSelectors.definition, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIFilterShape( ___result );
		}
		unsafe public CGRect extent() {
			CGRect ___result;
			RuntimeObject ___occuredException;
			NativeMethods.extent( out ___result, sizeof( CGRect ), Handle, CachedSelectors.extent, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject initWithImage_( CIImage image ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithImage_( Handle, CachedSelectors.initWithImage_, out ___occuredException, sizeof( CIImage ), image );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		public NObjective.RuntimeObject initWithImage_keysAndValues_( CIImage image, NObjective.RuntimeObject keysAndValues ) {
			return Handle.InvokeObjectFast( CachedSelectors.initWithImage_keysAndValues_, CachedEncodings.__19F8A84A, image, keysAndValues );
		}
		unsafe public NObjective.RuntimeObject initWithImage_options_( CIImage image, NSDictionary options ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithImage_options_( Handle, CachedSelectors.initWithImage_options_, out ___occuredException, sizeof( CIImage ) + sizeof( NSDictionary ), image, options );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject opaqueShape() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.opaqueShape( Handle, CachedSelectors.opaqueShape, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void release() {
			RuntimeObject ___occuredException;
			NativeMethods.release( Handle, CachedSelectors.release, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject wrapMode() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.wrapMode( Handle, CachedSelectors.wrapMode, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr apply_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject apply );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern System.IntPtr colorSpace( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr definition( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_stret_eh2" )]
			public static extern void extent( out CGRect ___structAddress, int ___structSize, RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithImage_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CIImage image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithImage_options_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CIImage image, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr opaqueShape( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void release( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr samplerWithImage_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CIImage image );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr samplerWithImage_options_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CIImage image, NSDictionary options );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr wrapMode( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedEncodings {
			public static readonly RuntimeMethodEncoding __19F8A84A = "@16@0:4@8@12";
		}
		static internal class CachedSelectors {
			public static readonly Selector apply_ = "apply:";
			public static readonly Selector colorSpace = "colorSpace";
			public static readonly Selector definition = "definition";
			public static readonly Selector extent = "extent";
			public static readonly Selector initWithImage_ = "initWithImage:";
			public static readonly Selector initWithImage_keysAndValues_ = "initWithImage:keysAndValues:";
			public static readonly Selector initWithImage_options_ = "initWithImage:options:";
			public static readonly Selector opaqueShape = "opaqueShape";
			public static readonly Selector release = "release";
			public static readonly Selector samplerWithImage_ = "samplerWithImage:";
			public static readonly Selector samplerWithImage_keysAndValues_ = "samplerWithImage:keysAndValues:";
			public static readonly Selector samplerWithImage_options_ = "samplerWithImage:options:";
			public static readonly Selector wrapMode = "wrapMode";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISaturationBlendMode : IEquatable<CISaturationBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISaturationBlendMode;
		public static implicit operator CIFilter( CISaturationBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISaturationBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISaturationBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISaturationBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISaturationBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISaturationBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISaturationBlendMode value1, CISaturationBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISaturationBlendMode value1, CISaturationBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISaturationBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISaturationBlendMode alloc() {
			return new CISaturationBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIScreenBlendMode : IEquatable<CIScreenBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIScreenBlendMode;
		public static implicit operator CIFilter( CIScreenBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIScreenBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIScreenBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIScreenBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIScreenBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIScreenBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIScreenBlendMode value1, CIScreenBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIScreenBlendMode value1, CIScreenBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIScreenBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIScreenBlendMode alloc() {
			return new CIScreenBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISepiaTone : IEquatable<CISepiaTone> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISepiaTone;
		public static implicit operator CIFilter( CISepiaTone value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISepiaTone value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISepiaTone value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISepiaTone value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISepiaTone?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISepiaTone value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISepiaTone value1, CISepiaTone value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISepiaTone value1, CISepiaTone value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISepiaTone( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISepiaTone alloc() {
			return new CISepiaTone( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIShadedMaterial : IEquatable<CIShadedMaterial> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIShadedMaterial;
		public static implicit operator CIFilter( CIShadedMaterial value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIShadedMaterial value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIShadedMaterial value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIShadedMaterial value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIShadedMaterial?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIShadedMaterial value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIShadedMaterial value1, CIShadedMaterial value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIShadedMaterial value1, CIShadedMaterial value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIShadedMaterial( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIShadedMaterial alloc() {
			return new CIShadedMaterial( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIShapedWaterRipple : IEquatable<CIShapedWaterRipple> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIShapedWaterRipple;
		public static implicit operator CIFilter( CIShapedWaterRipple value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIShapedWaterRipple value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIShapedWaterRipple value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIShapedWaterRipple value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIShapedWaterRipple?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIShapedWaterRipple value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIShapedWaterRipple value1, CIShapedWaterRipple value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIShapedWaterRipple value1, CIShapedWaterRipple value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIShapedWaterRipple( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIShapedWaterRipple alloc() {
			return new CIShapedWaterRipple( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject wavePattern() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.wavePattern( Handle, CachedSelectors.wavePattern, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr wavePattern( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
			public static readonly Selector wavePattern = "wavePattern";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISharpenLuminance : IEquatable<CISharpenLuminance> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISharpenLuminance;
		public static implicit operator CIFilter( CISharpenLuminance value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISharpenLuminance value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISharpenLuminance value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISharpenLuminance value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISharpenLuminance?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISharpenLuminance value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISharpenLuminance value1, CISharpenLuminance value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISharpenLuminance value1, CISharpenLuminance value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISharpenLuminance( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISharpenLuminance alloc() {
			return new CISharpenLuminance( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISilhouetteAlphaBlendMode : IEquatable<CISilhouetteAlphaBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISilhouetteAlphaBlendMode;
		public static implicit operator CIFilter( CISilhouetteAlphaBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISilhouetteAlphaBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISilhouetteAlphaBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISilhouetteAlphaBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISilhouetteAlphaBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISilhouetteAlphaBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISilhouetteAlphaBlendMode value1, CISilhouetteAlphaBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISilhouetteAlphaBlendMode value1, CISilhouetteAlphaBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISilhouetteAlphaBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISilhouetteAlphaBlendMode alloc() {
			return new CISilhouetteAlphaBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISilhouetteLumaBlendMode : IEquatable<CISilhouetteLumaBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISilhouetteLumaBlendMode;
		public static implicit operator CIFilter( CISilhouetteLumaBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISilhouetteLumaBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISilhouetteLumaBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISilhouetteLumaBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISilhouetteLumaBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISilhouetteLumaBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISilhouetteLumaBlendMode value1, CISilhouetteLumaBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISilhouetteLumaBlendMode value1, CISilhouetteLumaBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISilhouetteLumaBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISilhouetteLumaBlendMode alloc() {
			return new CISilhouetteLumaBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISixfoldReflectedTile : IEquatable<CISixfoldReflectedTile> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISixfoldReflectedTile;
		public static implicit operator CIFilter( CISixfoldReflectedTile value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISixfoldReflectedTile value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISixfoldReflectedTile value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISixfoldReflectedTile value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISixfoldReflectedTile?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISixfoldReflectedTile value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISixfoldReflectedTile value1, CISixfoldReflectedTile value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISixfoldReflectedTile value1, CISixfoldReflectedTile value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISixfoldReflectedTile( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISixfoldReflectedTile alloc() {
			return new CISixfoldReflectedTile( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISixfoldRotatedTile : IEquatable<CISixfoldRotatedTile> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISixfoldRotatedTile;
		public static implicit operator CIFilter( CISixfoldRotatedTile value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISixfoldRotatedTile value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISixfoldRotatedTile value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISixfoldRotatedTile value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISixfoldRotatedTile?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISixfoldRotatedTile value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISixfoldRotatedTile value1, CISixfoldRotatedTile value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISixfoldRotatedTile value1, CISixfoldRotatedTile value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISixfoldRotatedTile( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISixfoldRotatedTile alloc() {
			return new CISixfoldRotatedTile( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISmallChromaMorphologyMinimum : IEquatable<CISmallChromaMorphologyMinimum> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISmallChromaMorphologyMinimum;
		public static implicit operator CIFilter( CISmallChromaMorphologyMinimum value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISmallChromaMorphologyMinimum value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISmallChromaMorphologyMinimum value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISmallChromaMorphologyMinimum value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISmallChromaMorphologyMinimum?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISmallChromaMorphologyMinimum value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISmallChromaMorphologyMinimum value1, CISmallChromaMorphologyMinimum value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISmallChromaMorphologyMinimum value1, CISmallChromaMorphologyMinimum value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISmallChromaMorphologyMinimum( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISmallChromaMorphologyMinimum alloc() {
			return new CISmallChromaMorphologyMinimum( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISmallCircularChromaBlur : IEquatable<CISmallCircularChromaBlur> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISmallCircularChromaBlur;
		public static implicit operator CIFilter( CISmallCircularChromaBlur value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISmallCircularChromaBlur value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISmallCircularChromaBlur value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISmallCircularChromaBlur value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISmallCircularChromaBlur?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISmallCircularChromaBlur value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISmallCircularChromaBlur value1, CISmallCircularChromaBlur value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISmallCircularChromaBlur value1, CISmallCircularChromaBlur value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISmallCircularChromaBlur( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISmallCircularChromaBlur alloc() {
			return new CISmallCircularChromaBlur( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISmallHighpassEdges : IEquatable<CISmallHighpassEdges> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISmallHighpassEdges;
		public static implicit operator CIFilter( CISmallHighpassEdges value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISmallHighpassEdges value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISmallHighpassEdges value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISmallHighpassEdges value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISmallHighpassEdges?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISmallHighpassEdges value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISmallHighpassEdges value1, CISmallHighpassEdges value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISmallHighpassEdges value1, CISmallHighpassEdges value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISmallHighpassEdges( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISmallHighpassEdges alloc() {
			return new CISmallHighpassEdges( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISmallSharpenEdgesAndChromaBlur : IEquatable<CISmallSharpenEdgesAndChromaBlur> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISmallSharpenEdgesAndChromaBlur;
		public static implicit operator CIFilter( CISmallSharpenEdgesAndChromaBlur value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISmallSharpenEdgesAndChromaBlur value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISmallSharpenEdgesAndChromaBlur value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISmallSharpenEdgesAndChromaBlur value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISmallSharpenEdgesAndChromaBlur?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISmallSharpenEdgesAndChromaBlur value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISmallSharpenEdgesAndChromaBlur value1, CISmallSharpenEdgesAndChromaBlur value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISmallSharpenEdgesAndChromaBlur value1, CISmallSharpenEdgesAndChromaBlur value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISmallSharpenEdgesAndChromaBlur( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISmallSharpenEdgesAndChromaBlur alloc() {
			return new CISmallSharpenEdgesAndChromaBlur( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISobelEdges : IEquatable<CISobelEdges> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISobelEdges;
		public static implicit operator CIFilter( CISobelEdges value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISobelEdges value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISobelEdges value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISobelEdges value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISobelEdges?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISobelEdges value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISobelEdges value1, CISobelEdges value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISobelEdges value1, CISobelEdges value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISobelEdges( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISobelEdges alloc() {
			return new CISobelEdges( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISoftLightBlendMode : IEquatable<CISoftLightBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISoftLightBlendMode;
		public static implicit operator CIFilter( CISoftLightBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISoftLightBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISoftLightBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISoftLightBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISoftLightBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISoftLightBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISoftLightBlendMode value1, CISoftLightBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISoftLightBlendMode value1, CISoftLightBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISoftLightBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISoftLightBlendMode alloc() {
			return new CISoftLightBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISourceAtopCompositing : IEquatable<CISourceAtopCompositing> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISourceAtopCompositing;
		public static implicit operator CIFilter( CISourceAtopCompositing value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISourceAtopCompositing value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISourceAtopCompositing value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISourceAtopCompositing value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISourceAtopCompositing?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISourceAtopCompositing value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISourceAtopCompositing value1, CISourceAtopCompositing value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISourceAtopCompositing value1, CISourceAtopCompositing value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISourceAtopCompositing( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISourceAtopCompositing alloc() {
			return new CISourceAtopCompositing( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISourceInCompositing : IEquatable<CISourceInCompositing> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISourceInCompositing;
		public static implicit operator CIFilter( CISourceInCompositing value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISourceInCompositing value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISourceInCompositing value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISourceInCompositing value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISourceInCompositing?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISourceInCompositing value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISourceInCompositing value1, CISourceInCompositing value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISourceInCompositing value1, CISourceInCompositing value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISourceInCompositing( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISourceInCompositing alloc() {
			return new CISourceInCompositing( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISourceOutCompositing : IEquatable<CISourceOutCompositing> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISourceOutCompositing;
		public static implicit operator CIFilter( CISourceOutCompositing value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISourceOutCompositing value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISourceOutCompositing value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISourceOutCompositing value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISourceOutCompositing?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISourceOutCompositing value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISourceOutCompositing value1, CISourceOutCompositing value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISourceOutCompositing value1, CISourceOutCompositing value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISourceOutCompositing( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISourceOutCompositing alloc() {
			return new CISourceOutCompositing( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISourceOverCompositing : IEquatable<CISourceOverCompositing> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISourceOverCompositing;
		public static implicit operator CIFilter( CISourceOverCompositing value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISourceOverCompositing value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISourceOverCompositing value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISourceOverCompositing value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISourceOverCompositing?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISourceOverCompositing value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISourceOverCompositing value1, CISourceOverCompositing value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISourceOverCompositing value1, CISourceOverCompositing value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISourceOverCompositing( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISourceOverCompositing alloc() {
			return new CISourceOverCompositing( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISphereGradient : IEquatable<CISphereGradient> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISphereGradient;
		public static implicit operator CIFilter( CISphereGradient value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISphereGradient value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISphereGradient value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISphereGradient value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISphereGradient?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISphereGradient value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISphereGradient value1, CISphereGradient value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISphereGradient value1, CISphereGradient value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISphereGradient( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISphereGradient alloc() {
			return new CISphereGradient( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISpotColor : IEquatable<CISpotColor> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISpotColor;
		public static implicit operator CIFilter( CISpotColor value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISpotColor value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISpotColor value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISpotColor value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISpotColor?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISpotColor value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISpotColor value1, CISpotColor value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISpotColor value1, CISpotColor value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISpotColor( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISpotColor alloc() {
			return new CISpotColor( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISpotLight : IEquatable<CISpotLight> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISpotLight;
		public static implicit operator CIFilter( CISpotLight value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISpotLight value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISpotLight value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISpotLight value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISpotLight?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISpotLight value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISpotLight value1, CISpotLight value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISpotLight value1, CISpotLight value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISpotLight( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISpotLight alloc() {
			return new CISpotLight( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIStarShineGenerator : IEquatable<CIStarShineGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIStarShineGenerator;
		public static implicit operator CIFilter( CIStarShineGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIStarShineGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIStarShineGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIStarShineGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIStarShineGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIStarShineGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIStarShineGenerator value1, CIStarShineGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIStarShineGenerator value1, CIStarShineGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIStarShineGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIStarShineGenerator alloc() {
			return new CIStarShineGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIStencilAlphaBlendMode : IEquatable<CIStencilAlphaBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIStencilAlphaBlendMode;
		public static implicit operator CIFilter( CIStencilAlphaBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIStencilAlphaBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIStencilAlphaBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIStencilAlphaBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIStencilAlphaBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIStencilAlphaBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIStencilAlphaBlendMode value1, CIStencilAlphaBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIStencilAlphaBlendMode value1, CIStencilAlphaBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIStencilAlphaBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIStencilAlphaBlendMode alloc() {
			return new CIStencilAlphaBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIStencilLumaBlendMode : IEquatable<CIStencilLumaBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIStencilLumaBlendMode;
		public static implicit operator CIFilter( CIStencilLumaBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIStencilLumaBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIStencilLumaBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIStencilLumaBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIStencilLumaBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIStencilLumaBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIStencilLumaBlendMode value1, CIStencilLumaBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIStencilLumaBlendMode value1, CIStencilLumaBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIStencilLumaBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIStencilLumaBlendMode alloc() {
			return new CIStencilLumaBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIStripesGenerator : IEquatable<CIStripesGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIStripesGenerator;
		public static implicit operator CIFilter( CIStripesGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIStripesGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIStripesGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIStripesGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIStripesGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIStripesGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIStripesGenerator value1, CIStripesGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIStripesGenerator value1, CIStripesGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIStripesGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIStripesGenerator alloc() {
			return new CIStripesGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIStripGenerator : IEquatable<CIStripGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIStripGenerator;
		public static implicit operator CIFilter( CIStripGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIStripGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIStripGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIStripGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIStripGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIStripGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIStripGenerator value1, CIStripGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIStripGenerator value1, CIStripGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIStripGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIStripGenerator alloc() {
			return new CIStripGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISubtractBlendMode : IEquatable<CISubtractBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISubtractBlendMode;
		public static implicit operator CIFilter( CISubtractBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISubtractBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISubtractBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISubtractBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISubtractBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISubtractBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISubtractBlendMode value1, CISubtractBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISubtractBlendMode value1, CISubtractBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISubtractBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISubtractBlendMode alloc() {
			return new CISubtractBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISumOf8Conics : IEquatable<CISumOf8Conics> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISumOf8Conics;
		public static implicit operator CIFilter( CISumOf8Conics value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISumOf8Conics value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISumOf8Conics value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISumOf8Conics value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISumOf8Conics?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISumOf8Conics value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISumOf8Conics value1, CISumOf8Conics value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISumOf8Conics value1, CISumOf8Conics value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISumOf8Conics( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISumOf8Conics alloc() {
			return new CISumOf8Conics( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISunbeamsGenerator : IEquatable<CISunbeamsGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISunbeamsGenerator;
		public static implicit operator CIFilter( CISunbeamsGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISunbeamsGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISunbeamsGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISunbeamsGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISunbeamsGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISunbeamsGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISunbeamsGenerator value1, CISunbeamsGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISunbeamsGenerator value1, CISunbeamsGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISunbeamsGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISunbeamsGenerator alloc() {
			return new CISunbeamsGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISwipeTransition : IEquatable<CISwipeTransition> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISwipeTransition;
		public static implicit operator CIFilter( CISwipeTransition value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISwipeTransition value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISwipeTransition value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISwipeTransition value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISwipeTransition?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISwipeTransition value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISwipeTransition value1, CISwipeTransition value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISwipeTransition value1, CISwipeTransition value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISwipeTransition( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISwipeTransition alloc() {
			return new CISwipeTransition( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CISymmetricNearestNeighbor : IEquatable<CISymmetricNearestNeighbor> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CISymmetricNearestNeighbor;
		public static implicit operator CIFilter( CISymmetricNearestNeighbor value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CISymmetricNearestNeighbor value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CISymmetricNearestNeighbor value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CISymmetricNearestNeighbor value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CISymmetricNearestNeighbor?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CISymmetricNearestNeighbor value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CISymmetricNearestNeighbor value1, CISymmetricNearestNeighbor value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CISymmetricNearestNeighbor value1, CISymmetricNearestNeighbor value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CISymmetricNearestNeighbor( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CISymmetricNearestNeighbor alloc() {
			return new CISymmetricNearestNeighbor( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CITagWithColorSpace : IEquatable<CITagWithColorSpace> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CITagWithColorSpace;
		public static implicit operator CIFilter( CITagWithColorSpace value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CITagWithColorSpace value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CITagWithColorSpace value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CITagWithColorSpace value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CITagWithColorSpace?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CITagWithColorSpace value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CITagWithColorSpace value1, CITagWithColorSpace value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CITagWithColorSpace value1, CITagWithColorSpace value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CITagWithColorSpace( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CITagWithColorSpace alloc() {
			return new CITagWithColorSpace( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CITigerBlur : IEquatable<CITigerBlur> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CITigerBlur;
		public static implicit operator CIFilter( CITigerBlur value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CITigerBlur value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CITigerBlur value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CITigerBlur value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CITigerBlur?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CITigerBlur value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CITigerBlur value1, CITigerBlur value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CITigerBlur value1, CITigerBlur value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CITigerBlur( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CITigerBlur alloc() {
			return new CITigerBlur( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject cheapBlur() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.cheapBlur( Handle, CachedSelectors.cheapBlur, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject forcePromise_( NObjective.RuntimeObject promise ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.forcePromise_( Handle, CachedSelectors.forcePromise_, out ___occuredException, sizeof( NObjective.RuntimeObject ), promise );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject gaussianBlur() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.gaussianBlur( Handle, CachedSelectors.gaussianBlur, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr cheapBlur( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr forcePromise_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject promise );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr gaussianBlur( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector cheapBlur = "cheapBlur";
			public static readonly Selector forcePromise_ = "forcePromise:";
			public static readonly Selector gaussianBlur = "gaussianBlur";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CITorusLensDistortion : IEquatable<CITorusLensDistortion> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CITorusLensDistortion;
		public static implicit operator CIFilter( CITorusLensDistortion value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CITorusLensDistortion value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CITorusLensDistortion value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CITorusLensDistortion value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CITorusLensDistortion?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CITorusLensDistortion value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CITorusLensDistortion value1, CITorusLensDistortion value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CITorusLensDistortion value1, CITorusLensDistortion value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CITorusLensDistortion( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CITorusLensDistortion alloc() {
			return new CITorusLensDistortion( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CITransferImage : IEquatable<CITransferImage> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CITransferImage;
		public static implicit operator CIFilter( CITransferImage value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CITransferImage value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CITransferImage value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CITransferImage value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CITransferImage?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CITransferImage value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CITransferImage value1, CITransferImage value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CITransferImage value1, CITransferImage value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CITransferImage( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CITransferImage alloc() {
			return new CITransferImage( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CITriangleTile : IEquatable<CITriangleTile> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CITriangleTile;
		public static implicit operator CIFilter( CITriangleTile value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CITriangleTile value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CITriangleTile value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CITriangleTile value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CITriangleTile?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CITriangleTile value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CITriangleTile value1, CITriangleTile value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CITriangleTile value1, CITriangleTile value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CITriangleTile( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CITriangleTile alloc() {
			return new CITriangleTile( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CITwelvefoldReflectedTile : IEquatable<CITwelvefoldReflectedTile> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CITwelvefoldReflectedTile;
		public static implicit operator CIFilter( CITwelvefoldReflectedTile value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CITwelvefoldReflectedTile value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CITwelvefoldReflectedTile value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CITwelvefoldReflectedTile value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CITwelvefoldReflectedTile?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CITwelvefoldReflectedTile value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CITwelvefoldReflectedTile value1, CITwelvefoldReflectedTile value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CITwelvefoldReflectedTile value1, CITwelvefoldReflectedTile value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CITwelvefoldReflectedTile( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CITwelvefoldReflectedTile alloc() {
			return new CITwelvefoldReflectedTile( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CITwirlDistortion : IEquatable<CITwirlDistortion> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CITwirlDistortion;
		public static implicit operator CIFilter( CITwirlDistortion value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CITwirlDistortion value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CITwirlDistortion value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CITwirlDistortion value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CITwirlDistortion?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CITwirlDistortion value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CITwirlDistortion value1, CITwirlDistortion value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CITwirlDistortion value1, CITwirlDistortion value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CITwirlDistortion( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CITwirlDistortion alloc() {
			return new CITwirlDistortion( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIUIBundleBase ) )]
	public struct CIUIBundle1 : IEquatable<CIUIBundle1> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIUIBundle1;
		public static implicit operator CIUIBundleBase( CIUIBundle1 value ) {
			return new CIUIBundleBase( value.Handle );
		}
		public static implicit operator NSObject( CIUIBundle1 value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIUIBundle1 value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIUIBundle1 value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIUIBundle1?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIUIBundle1 value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIUIBundle1 value1, CIUIBundle1 value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIUIBundle1 value1, CIUIBundle1 value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIUIBundle1( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIUIBundle1 alloc() {
			return new CIUIBundle1( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject keyForParameter_( int parameter ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.keyForParameter_( ClassHandle, CachedSelectors.keyForParameter_, out ___occuredException, sizeof( int ), parameter );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static int typeForParameter_( int parameter ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.typeForParameter_( ClassHandle, CachedSelectors.typeForParameter_, out ___occuredException, sizeof( int ), parameter );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject buttonEMapResultForResolution_( int resolution ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.buttonEMapResultForResolution_( Handle, CachedSelectors.buttonEMapResultForResolution_, out ___occuredException, sizeof( int ), resolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject highlightEMapResultForResolution_( int resolution ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.highlightEMapResultForResolution_( Handle, CachedSelectors.highlightEMapResultForResolution_, out ___occuredException, sizeof( int ), resolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void initializeButtonStructureAtX_y_forResolution_( float x, float y, int forResolution ) {
			RuntimeObject ___occuredException;
			NativeMethods.initializeButtonStructureAtX_y_forResolution_( Handle, CachedSelectors.initializeButtonStructureAtX_y_forResolution_, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( int ), x, y, forResolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void initResolutionDataPointers_( System.IntPtr pointers ) {
			RuntimeObject ___occuredException;
			NativeMethods.initResolutionDataPointers_( Handle, CachedSelectors.initResolutionDataPointers_, out ___occuredException, sizeof( System.IntPtr ), pointers );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject inlayEMapResultForResolution_( int resolution ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.inlayEMapResultForResolution_( Handle, CachedSelectors.inlayEMapResultForResolution_, out ___occuredException, sizeof( int ), resolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void recalcFigureForResolution_( int resolution ) {
			RuntimeObject ___occuredException;
			NativeMethods.recalcFigureForResolution_( Handle, CachedSelectors.recalcFigureForResolution_, out ___occuredException, sizeof( int ), resolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setButtonEMap_( NObjective.RuntimeObject map ) {
			RuntimeObject ___occuredException;
			NativeMethods.setButtonEMap_( Handle, CachedSelectors.setButtonEMap_, out ___occuredException, sizeof( NObjective.RuntimeObject ), map );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setFigure_( NObjective.RuntimeObject figure ) {
			RuntimeObject ___occuredException;
			NativeMethods.setFigure_( Handle, CachedSelectors.setFigure_, out ___occuredException, sizeof( NObjective.RuntimeObject ), figure );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setHighlightEMap_( NObjective.RuntimeObject map ) {
			RuntimeObject ___occuredException;
			NativeMethods.setHighlightEMap_( Handle, CachedSelectors.setHighlightEMap_, out ___occuredException, sizeof( NObjective.RuntimeObject ), map );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setInlayEMap_( NObjective.RuntimeObject map ) {
			RuntimeObject ___occuredException;
			NativeMethods.setInlayEMap_( Handle, CachedSelectors.setInlayEMap_, out ___occuredException, sizeof( NObjective.RuntimeObject ), map );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setStripeGradient_( NObjective.RuntimeObject gradient ) {
			RuntimeObject ___occuredException;
			NativeMethods.setStripeGradient_( Handle, CachedSelectors.setStripeGradient_, out ___occuredException, sizeof( NObjective.RuntimeObject ), gradient );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void termPointersForResolution_( System.IntPtr resolution ) {
			RuntimeObject ___occuredException;
			NativeMethods.termPointersForResolution_( Handle, CachedSelectors.termPointersForResolution_, out ___occuredException, sizeof( System.IntPtr ), resolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr buttonEMapResultForResolution_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int resolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr highlightEMapResultForResolution_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int resolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void initializeButtonStructureAtX_y_forResolution_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float x, float y, int forResolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void initResolutionDataPointers_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr pointers );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr inlayEMapResultForResolution_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int resolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr keyForParameter_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int parameter );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void recalcFigureForResolution_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int resolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setButtonEMap_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject map );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setFigure_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject figure );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setHighlightEMap_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject map );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setInlayEMap_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject map );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setStripeGradient_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject gradient );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void termPointersForResolution_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr resolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int typeForParameter_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int parameter );
		}
		static internal class CachedSelectors {
			public static readonly Selector buttonEMapResultForResolution_ = "buttonEMapResultForResolution:";
			public static readonly Selector highlightEMapResultForResolution_ = "highlightEMapResultForResolution:";
			public static readonly Selector initializeButtonStructureAtX_y_forResolution_ = "initializeButtonStructureAtX:y:forResolution:";
			public static readonly Selector initResolutionDataPointers_ = "initResolutionDataPointers:";
			public static readonly Selector inlayEMapResultForResolution_ = "inlayEMapResultForResolution:";
			public static readonly Selector keyForParameter_ = "keyForParameter:";
			public static readonly Selector recalcFigureForResolution_ = "recalcFigureForResolution:";
			public static readonly Selector setButtonEMap_ = "setButtonEMap:";
			public static readonly Selector setFigure_ = "setFigure:";
			public static readonly Selector setHighlightEMap_ = "setHighlightEMap:";
			public static readonly Selector setInlayEMap_ = "setInlayEMap:";
			public static readonly Selector setStripeGradient_ = "setStripeGradient:";
			public static readonly Selector termPointersForResolution_ = "termPointersForResolution:";
			public static readonly Selector typeForParameter_ = "typeForParameter:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIUIBundleBase ) )]
	public struct CIUIBundle2 : IEquatable<CIUIBundle2> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIUIBundle2;
		public static implicit operator CIUIBundleBase( CIUIBundle2 value ) {
			return new CIUIBundleBase( value.Handle );
		}
		public static implicit operator NSObject( CIUIBundle2 value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIUIBundle2 value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIUIBundle2 value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIUIBundle2?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIUIBundle2 value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIUIBundle2 value1, CIUIBundle2 value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIUIBundle2 value1, CIUIBundle2 value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIUIBundle2( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIUIBundle2 alloc() {
			return new CIUIBundle2( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject adjust_brightness_andContrast_( NObjective.RuntimeObject adjust, float brightness, float andContrast ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.adjust_brightness_andContrast_( ClassHandle, CachedSelectors.adjust_brightness_andContrast_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( float ), adjust, brightness, andContrast );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static void adjustRed_green_blue_alpha_usingAdjustmentsOfHue_saturation_luminance_producingRed_green_blue_alpha_( float red, float green, float blue, float alpha, float usingAdjustmentsOfHue, float saturation, float luminance, System.IntPtr producingRed, System.IntPtr green2, System.IntPtr blue2, 
		System.IntPtr alpha2 ) {
			RuntimeObject ___occuredException;
			NativeMethods.adjustRed_green_blue_alpha_usingAdjustmentsOfHue_saturation_luminance_producingRed_green_blue_alpha_( ClassHandle, CachedSelectors.adjustRed_green_blue_alpha_usingAdjustmentsOfHue_saturation_luminance_producingRed_green_blue_alpha_, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ), red, green, blue, alpha, usingAdjustmentsOfHue, saturation, 
			luminance, producingRed, green2, blue2, alpha2 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static NObjective.RuntimeObject blend_over_blendKind_( NObjective.RuntimeObject blend, NObjective.RuntimeObject over, int blendKind ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blend_over_blendKind_( ClassHandle, CachedSelectors.blend_over_blendKind_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( int ), blend, over, blendKind );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject blur_radius_( NObjective.RuntimeObject blur, float radius ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blur_radius_( ClassHandle, CachedSelectors.blur_radius_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ), blur, radius );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject blur_radius_kind_( NObjective.RuntimeObject blur, float radius, int kind ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blur_radius_kind_( ClassHandle, CachedSelectors.blur_radius_kind_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( int ), blur, radius, kind );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject burn_into_opacity_( NObjective.RuntimeObject burn, NObjective.RuntimeObject @into, float opacity ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.burn_into_opacity_( ClassHandle, CachedSelectors.burn_into_opacity_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( float ), burn, @into, opacity );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static float calculateFigure_size_( int figure, System.IntPtr size ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.calculateFigure_size_( ClassHandle, CachedSelectors.calculateFigure_size_, out ___occuredException, sizeof( int ) + sizeof( System.IntPtr ), figure, size );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static NObjective.RuntimeObject colorWithColor_( NObjective.RuntimeObject color ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.colorWithColor_( ClassHandle, CachedSelectors.colorWithColor_, out ___occuredException, sizeof( NObjective.RuntimeObject ), color );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject colorWithRed_green_blue_alpha_( float red, float green, float blue, float alpha ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.colorWithRed_green_blue_alpha_( ClassHandle, CachedSelectors.colorWithRed_green_blue_alpha_, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), red, green, blue, alpha );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject composite_atop_( NObjective.RuntimeObject composite, NObjective.RuntimeObject atop ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.composite_atop_( ClassHandle, CachedSelectors.composite_atop_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), composite, atop );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject composite_into_( NObjective.RuntimeObject composite, NObjective.RuntimeObject @into ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.composite_into_( ClassHandle, CachedSelectors.composite_into_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), composite, @into );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject composite_outOf_( NObjective.RuntimeObject composite, NObjective.RuntimeObject outOf ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.composite_outOf_( ClassHandle, CachedSelectors.composite_outOf_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), composite, outOf );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject composite_over_( NObjective.RuntimeObject composite, NObjective.RuntimeObject over ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.composite_over_( ClassHandle, CachedSelectors.composite_over_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), composite, over );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject darkerOf_and_opacity_( NObjective.RuntimeObject of, NObjective.RuntimeObject and, float opacity ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.darkerOf_and_opacity_( ClassHandle, CachedSelectors.darkerOf_and_opacity_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( float ), of, and, opacity );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject darkMetalBackgroundUsingTexture_( NObjective.RuntimeObject texture ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.darkMetalBackgroundUsingTexture_( ClassHandle, CachedSelectors.darkMetalBackgroundUsingTexture_, out ___occuredException, sizeof( NObjective.RuntimeObject ), texture );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject darkPaperBackgroundUsingTexture_( NObjective.RuntimeObject texture ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.darkPaperBackgroundUsingTexture_( ClassHandle, CachedSelectors.darkPaperBackgroundUsingTexture_, out ___occuredException, sizeof( NObjective.RuntimeObject ), texture );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject gel_over_opacity_( NObjective.RuntimeObject gel, NObjective.RuntimeObject over, float opacity ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.gel_over_opacity_( ClassHandle, CachedSelectors.gel_over_opacity_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( float ), gel, over, opacity );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject heightFieldFrom_radius_( NObjective.RuntimeObject @from, float radius ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.heightFieldFrom_radius_( ClassHandle, CachedSelectors.heightFieldFrom_radius_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ), @from, radius );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject heightFieldFrom_radius_initial_constraint_( NObjective.RuntimeObject @from, float radius, NObjective.RuntimeObject initial, NObjective.RuntimeObject constraint ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.heightFieldFrom_radius_initial_constraint_( ClassHandle, CachedSelectors.heightFieldFrom_radius_initial_constraint_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), @from, radius, initial, constraint );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject image_withOpacity_( NObjective.RuntimeObject image, float withOpacity ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.image_withOpacity_( ClassHandle, CachedSelectors.image_withOpacity_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ), image, withOpacity );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject invert_( NObjective.RuntimeObject invert ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.invert_( ClassHandle, CachedSelectors.invert_, out ___occuredException, sizeof( NObjective.RuntimeObject ), invert );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject keyForParameter_( int parameter ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.keyForParameter_( ClassHandle, CachedSelectors.keyForParameter_, out ___occuredException, sizeof( int ), parameter );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject layerFrom_inRed_green_blue_( NObjective.RuntimeObject @from, float inRed, float green, float blue ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.layerFrom_inRed_green_blue_( ClassHandle, CachedSelectors.layerFrom_inRed_green_blue_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( float ) + sizeof( float ), @from, inRed, green, blue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject lightMetalBackgroundUsingTexture_( NObjective.RuntimeObject texture ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.lightMetalBackgroundUsingTexture_( ClassHandle, CachedSelectors.lightMetalBackgroundUsingTexture_, out ___occuredException, sizeof( NObjective.RuntimeObject ), texture );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject lightPaperBackgroundUsingTexture_( NObjective.RuntimeObject texture ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.lightPaperBackgroundUsingTexture_( ClassHandle, CachedSelectors.lightPaperBackgroundUsingTexture_, out ___occuredException, sizeof( NObjective.RuntimeObject ), texture );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject materialWarp_pull_choke_edge_flat_( NObjective.RuntimeObject warp, float pull, float choke, float edge, float flat ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.materialWarp_pull_choke_edge_flat_( ClassHandle, CachedSelectors.materialWarp_pull_choke_edge_flat_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), warp, pull, choke, edge, flat );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject metalBackgroundUsingTexture_andWidth_( NObjective.RuntimeObject texture, float andWidth ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.metalBackgroundUsingTexture_andWidth_( ClassHandle, CachedSelectors.metalBackgroundUsingTexture_andWidth_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ), texture, andWidth );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject multiply_with_( NObjective.RuntimeObject multiply, NObjective.RuntimeObject with ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.multiply_with_( ClassHandle, CachedSelectors.multiply_with_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), multiply, with );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject proKitGrayBackgroundUsingTexture_( NObjective.RuntimeObject texture ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.proKitGrayBackgroundUsingTexture_( ClassHandle, CachedSelectors.proKitGrayBackgroundUsingTexture_, out ___occuredException, sizeof( NObjective.RuntimeObject ), texture );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject shadedImage_heightField_shading_scale_opacity_hasAlpha_transparency_( NObjective.RuntimeObject image, NObjective.RuntimeObject heightField, NObjective.RuntimeObject shading, float scale, float opacity, char hasAlpha, char transparency ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.shadedImage_heightField_shading_scale_opacity_hasAlpha_transparency_( ClassHandle, CachedSelectors.shadedImage_heightField_shading_scale_opacity_hasAlpha_transparency_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( float ) + sizeof( char ) + sizeof( char ), image, heightField, shading, scale, opacity, hasAlpha, 
			transparency );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject shadowFrom_red_green_blue_opacity_( NObjective.RuntimeObject @from, float red, float green, float blue, float opacity ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.shadowFrom_red_green_blue_opacity_( ClassHandle, CachedSelectors.shadowFrom_red_green_blue_opacity_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), @from, red, green, blue, opacity );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject shadowFrom_red1_green1_blue1_alpha1_red2_green2_blue2_alpha2_opacity_( NObjective.RuntimeObject @from, float red1, float green1, float blue1, float alpha1, float red2, float green2, float blue2, float alpha2, float opacity
		 ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.shadowFrom_red1_green1_blue1_alpha1_red2_green2_blue2_alpha2_opacity_( ClassHandle, CachedSelectors.shadowFrom_red1_green1_blue1_alpha1_red2_green2_blue2_alpha2_opacity_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), @from, red1, green1, blue1, alpha1, red2, 
			green2, blue2, alpha2, opacity );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject transfer_X_Y_( NObjective.RuntimeObject transfer, float X, float Y ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.transfer_X_Y_( ClassHandle, CachedSelectors.transfer_X_Y_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( float ), transfer, X, Y );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static int typeForParameter_( int parameter ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.typeForParameter_( ClassHandle, CachedSelectors.typeForParameter_, out ___occuredException, sizeof( int ), parameter );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject bezierMaskWithPath_( NObjective.RuntimeObject path ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.bezierMaskWithPath_( Handle, CachedSelectors.bezierMaskWithPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ), path );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject calculateOutlineLayer_forResolutionData_( int layer, System.IntPtr forResolutionData ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.calculateOutlineLayer_forResolutionData_( Handle, CachedSelectors.calculateOutlineLayer_forResolutionData_, out ___occuredException, sizeof( int ) + sizeof( System.IntPtr ), layer, forResolutionData );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject calculateResolutionData_maskUnderTransform_withOutset_needsLofting_( System.IntPtr data, NObjective.RuntimeObject maskUnderTransform, float withOutset, char needsLofting ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.calculateResolutionData_maskUnderTransform_withOutset_needsLofting_( Handle, CachedSelectors.calculateResolutionData_maskUnderTransform_withOutset_needsLofting_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( NObjective.RuntimeObject ) + sizeof( float ) + sizeof( char ), data, maskUnderTransform, withOutset, needsLofting );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void closePath() {
			RuntimeObject ___occuredException;
			NativeMethods.closePath( Handle, CachedSelectors.closePath, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void curveToX1_andY1_andX2_andY2_andX3_andY3_( float x1, float andY1, float andX2, float andY2, float andX3, float andY3 ) {
			RuntimeObject ___occuredException;
			NativeMethods.curveToX1_andY1_andX2_andY2_andX3_andY3_( Handle, CachedSelectors.curveToX1_andY1_andX2_andY2_andX3_andY3_, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), x1, andY1, andX2, andY2, andX3, andY3
			 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject customOutlineMask() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.customOutlineMask( Handle, CachedSelectors.customOutlineMask, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject eMapPreviewForSection_( int section ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.eMapPreviewForSection_( Handle, CachedSelectors.eMapPreviewForSection_, out ___occuredException, sizeof( int ), section );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void initializeWidgetStructureAtX_y_forResolutionData_( float x, float y, System.IntPtr forResolutionData ) {
			RuntimeObject ___occuredException;
			NativeMethods.initializeWidgetStructureAtX_y_forResolutionData_( Handle, CachedSelectors.initializeWidgetStructureAtX_y_forResolutionData_, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( System.IntPtr ), x, y, forResolutionData );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void initialResetMeasurementsForResolution_withWidth_height_onlyIntegerSizes_( int resolution, float withWidth, float height, bool onlyIntegerSizes ) {
			RuntimeObject ___occuredException;
			NativeMethods.initialResetMeasurementsForResolution_withWidth_height_onlyIntegerSizes_( Handle, CachedSelectors.initialResetMeasurementsForResolution_withWidth_height_onlyIntegerSizes_, out ___occuredException, sizeof( int ) + sizeof( float ) + sizeof( float ) + sizeof( bool ), resolution, withWidth, height, onlyIntegerSizes );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject lightImageResult_lightIndex_( int result, int lightIndex ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.lightImageResult_lightIndex_( Handle, CachedSelectors.lightImageResult_lightIndex_, out ___occuredException, sizeof( int ) + sizeof( int ), result, lightIndex );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void lineToX_andY_( float x, float andY ) {
			RuntimeObject ___occuredException;
			NativeMethods.lineToX_andY_( Handle, CachedSelectors.lineToX_andY_, out ___occuredException, sizeof( float ) + sizeof( float ), x, andY );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void moveToX_andY_( float x, float andY ) {
			RuntimeObject ___occuredException;
			NativeMethods.moveToX_andY_( Handle, CachedSelectors.moveToX_andY_, out ___occuredException, sizeof( float ) + sizeof( float ), x, andY );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void recalcFigure_forResolution_( int figure, int forResolution ) {
			RuntimeObject ___occuredException;
			NativeMethods.recalcFigure_forResolution_( Handle, CachedSelectors.recalcFigure_forResolution_, out ___occuredException, sizeof( int ) + sizeof( int ), figure, forResolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void recalcInsideShadow_forResolution_( int shadow, int forResolution ) {
			RuntimeObject ___occuredException;
			NativeMethods.recalcInsideShadow_forResolution_( Handle, CachedSelectors.recalcInsideShadow_forResolution_, out ___occuredException, sizeof( int ) + sizeof( int ), shadow, forResolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void recalcInsideShadow_forResolutionData_( int shadow, System.IntPtr forResolutionData ) {
			RuntimeObject ___occuredException;
			NativeMethods.recalcInsideShadow_forResolutionData_( Handle, CachedSelectors.recalcInsideShadow_forResolutionData_, out ___occuredException, sizeof( int ) + sizeof( System.IntPtr ), shadow, forResolutionData );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void recalcMaskForResolution_( int resolution ) {
			RuntimeObject ___occuredException;
			NativeMethods.recalcMaskForResolution_( Handle, CachedSelectors.recalcMaskForResolution_, out ___occuredException, sizeof( int ), resolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void recalcMaskForResolutionData_( System.IntPtr data ) {
			RuntimeObject ___occuredException;
			NativeMethods.recalcMaskForResolutionData_( Handle, CachedSelectors.recalcMaskForResolutionData_, out ___occuredException, sizeof( System.IntPtr ), data );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void recalcOutline_forResolution_( int outline, int forResolution ) {
			RuntimeObject ___occuredException;
			NativeMethods.recalcOutline_forResolution_( Handle, CachedSelectors.recalcOutline_forResolution_, out ___occuredException, sizeof( int ) + sizeof( int ), outline, forResolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void recalcOutline_forResolutionData_( int outline, System.IntPtr forResolutionData ) {
			RuntimeObject ___occuredException;
			NativeMethods.recalcOutline_forResolutionData_( Handle, CachedSelectors.recalcOutline_forResolutionData_, out ___occuredException, sizeof( int ) + sizeof( System.IntPtr ), outline, forResolutionData );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void recalcOutsideShadow_forResolution_( int shadow, int forResolution ) {
			RuntimeObject ___occuredException;
			NativeMethods.recalcOutsideShadow_forResolution_( Handle, CachedSelectors.recalcOutsideShadow_forResolution_, out ___occuredException, sizeof( int ) + sizeof( int ), shadow, forResolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void recalcOutsideShadow_forResolutionData_( int shadow, System.IntPtr forResolutionData ) {
			RuntimeObject ___occuredException;
			NativeMethods.recalcOutsideShadow_forResolutionData_( Handle, CachedSelectors.recalcOutsideShadow_forResolutionData_, out ___occuredException, sizeof( int ) + sizeof( System.IntPtr ), shadow, forResolutionData );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void recalcSection_eMapForResolution_( int section, int eMapForResolution ) {
			RuntimeObject ___occuredException;
			NativeMethods.recalcSection_eMapForResolution_( Handle, CachedSelectors.recalcSection_eMapForResolution_, out ___occuredException, sizeof( int ) + sizeof( int ), section, eMapForResolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public int section_lightBlendMode_( int section, int lightBlendMode ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightBlendMode_( Handle, CachedSelectors.section_lightBlendMode_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightBlendMode );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightBrightness_( int section, int lightBrightness ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightBrightness_( Handle, CachedSelectors.section_lightBrightness_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightBrightness );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightColorAlpha_( int section, int lightColorAlpha ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightColorAlpha_( Handle, CachedSelectors.section_lightColorAlpha_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightColorAlpha );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightColorBlue_( int section, int lightColorBlue ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightColorBlue_( Handle, CachedSelectors.section_lightColorBlue_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightColorBlue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightColorGreen_( int section, int lightColorGreen ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightColorGreen_( Handle, CachedSelectors.section_lightColorGreen_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightColorGreen );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightColorRed_( int section, int lightColorRed ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightColorRed_( Handle, CachedSelectors.section_lightColorRed_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightColorRed );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool section_lightEnabled_( int section, int lightEnabled ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightEnabled_( Handle, CachedSelectors.section_lightEnabled_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightEnabled );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightImageAngle_( int section, int lightImageAngle ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightImageAngle_( Handle, CachedSelectors.section_lightImageAngle_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightImageAngle );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject section_lightImageName_( int section, int lightImageName ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightImageName_( Handle, CachedSelectors.section_lightImageName_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightImageName );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public float section_lightImageScale_( int section, int lightImageScale ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightImageScale_( Handle, CachedSelectors.section_lightImageScale_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightImageScale );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightImageXOffset_( int section, int lightImageXOffset ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightImageXOffset_( Handle, CachedSelectors.section_lightImageXOffset_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightImageXOffset );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightImageYOffset_( int section, int lightImageYOffset ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightImageYOffset_( Handle, CachedSelectors.section_lightImageYOffset_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightImageYOffset );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightLowerBlurRadius_( int section, int lightLowerBlurRadius ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightLowerBlurRadius_( Handle, CachedSelectors.section_lightLowerBlurRadius_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightLowerBlurRadius );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightMaskPositionX_( int section, int lightMaskPositionX ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightMaskPositionX_( Handle, CachedSelectors.section_lightMaskPositionX_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightMaskPositionX );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightMaskPositionY_( int section, int lightMaskPositionY ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightMaskPositionY_( Handle, CachedSelectors.section_lightMaskPositionY_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightMaskPositionY );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightMaskPositionZ_( int section, int lightMaskPositionZ ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightMaskPositionZ_( Handle, CachedSelectors.section_lightMaskPositionZ_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightMaskPositionZ );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject section_lightName_( int section, int lightName ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightName_( Handle, CachedSelectors.section_lightName_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightName );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public float section_lightPositionX_( int section, int lightPositionX ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightPositionX_( Handle, CachedSelectors.section_lightPositionX_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightPositionX );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightPositionY_( int section, int lightPositionY ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightPositionY_( Handle, CachedSelectors.section_lightPositionY_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightPositionY );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightPositionZ_( int section, int lightPositionZ ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightPositionZ_( Handle, CachedSelectors.section_lightPositionZ_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightPositionZ );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightPower_( int section, int lightPower ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightPower_( Handle, CachedSelectors.section_lightPower_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightPower );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightPrimitiveHeight_( int section, int lightPrimitiveHeight ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightPrimitiveHeight_( Handle, CachedSelectors.section_lightPrimitiveHeight_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightPrimitiveHeight );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightPrimitiveRadius_( int section, int lightPrimitiveRadius ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightPrimitiveRadius_( Handle, CachedSelectors.section_lightPrimitiveRadius_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightPrimitiveRadius );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightPrimitiveSpacing_( int section, int lightPrimitiveSpacing ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightPrimitiveSpacing_( Handle, CachedSelectors.section_lightPrimitiveSpacing_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightPrimitiveSpacing );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightPrimitiveThickness_( int section, int lightPrimitiveThickness ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightPrimitiveThickness_( Handle, CachedSelectors.section_lightPrimitiveThickness_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightPrimitiveThickness );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public int section_lightPrimitiveType_( int section, int lightPrimitiveType ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightPrimitiveType_( Handle, CachedSelectors.section_lightPrimitiveType_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightPrimitiveType );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightPrimitiveWidth_( int section, int lightPrimitiveWidth ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightPrimitiveWidth_( Handle, CachedSelectors.section_lightPrimitiveWidth_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightPrimitiveWidth );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public int section_lightType_( int section, int lightType ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightType_( Handle, CachedSelectors.section_lightType_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightType );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float section_lightUpperBlurRadius_( int section, int lightUpperBlurRadius ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.section_lightUpperBlurRadius_( Handle, CachedSelectors.section_lightUpperBlurRadius_, out ___occuredException, sizeof( int ) + sizeof( int ), section, lightUpperBlurRadius );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void setCustomOutlineMask_( NObjective.RuntimeObject mask ) {
			RuntimeObject ___occuredException;
			NativeMethods.setCustomOutlineMask_( Handle, CachedSelectors.setCustomOutlineMask_, out ___occuredException, sizeof( NObjective.RuntimeObject ), mask );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_blendModeToValue_( int section, int light, int blendModeToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_blendModeToValue_( Handle, CachedSelectors.setSection_light_blendModeToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( int ), section, light, blendModeToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_brightnessToValue_( int section, int light, float brightnessToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_brightnessToValue_( Handle, CachedSelectors.setSection_light_brightnessToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, brightnessToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_colorAlphaToValue_( int section, int light, float colorAlphaToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_colorAlphaToValue_( Handle, CachedSelectors.setSection_light_colorAlphaToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, colorAlphaToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_colorBlueToValue_( int section, int light, float colorBlueToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_colorBlueToValue_( Handle, CachedSelectors.setSection_light_colorBlueToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, colorBlueToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_colorGreenToValue_( int section, int light, float colorGreenToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_colorGreenToValue_( Handle, CachedSelectors.setSection_light_colorGreenToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, colorGreenToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_colorRedToValue_( int section, int light, float colorRedToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_colorRedToValue_( Handle, CachedSelectors.setSection_light_colorRedToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, colorRedToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_enabledToValue_( int section, int light, bool enabledToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_enabledToValue_( Handle, CachedSelectors.setSection_light_enabledToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( bool ), section, light, enabledToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_imageAngleToValue_( int section, int light, float imageAngleToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_imageAngleToValue_( Handle, CachedSelectors.setSection_light_imageAngleToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, imageAngleToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_imageNameToValue_( int section, int light, NObjective.RuntimeObject imageNameToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_imageNameToValue_( Handle, CachedSelectors.setSection_light_imageNameToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( NObjective.RuntimeObject ), section, light, imageNameToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_imageScaleToValue_( int section, int light, float imageScaleToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_imageScaleToValue_( Handle, CachedSelectors.setSection_light_imageScaleToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, imageScaleToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_imageXOffsetToValue_( int section, int light, float imageXOffsetToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_imageXOffsetToValue_( Handle, CachedSelectors.setSection_light_imageXOffsetToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, imageXOffsetToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_imageYOffsetToValue_( int section, int light, float imageYOffsetToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_imageYOffsetToValue_( Handle, CachedSelectors.setSection_light_imageYOffsetToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, imageYOffsetToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_lowerBlurRadiusToValue_( int section, int light, float lowerBlurRadiusToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_lowerBlurRadiusToValue_( Handle, CachedSelectors.setSection_light_lowerBlurRadiusToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, lowerBlurRadiusToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_maskPositionXToValue_( int section, int light, float maskPositionXToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_maskPositionXToValue_( Handle, CachedSelectors.setSection_light_maskPositionXToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, maskPositionXToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_maskPositionYToValue_( int section, int light, float maskPositionYToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_maskPositionYToValue_( Handle, CachedSelectors.setSection_light_maskPositionYToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, maskPositionYToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_maskPositionZToValue_( int section, int light, float maskPositionZToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_maskPositionZToValue_( Handle, CachedSelectors.setSection_light_maskPositionZToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, maskPositionZToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_nameToValue_( int section, int light, NObjective.RuntimeObject nameToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_nameToValue_( Handle, CachedSelectors.setSection_light_nameToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( NObjective.RuntimeObject ), section, light, nameToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_positionXToValue_( int section, int light, float positionXToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_positionXToValue_( Handle, CachedSelectors.setSection_light_positionXToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, positionXToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_positionYToValue_( int section, int light, float positionYToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_positionYToValue_( Handle, CachedSelectors.setSection_light_positionYToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, positionYToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_positionZToValue_( int section, int light, float positionZToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_positionZToValue_( Handle, CachedSelectors.setSection_light_positionZToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, positionZToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_powerToValue_( int section, int light, float powerToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_powerToValue_( Handle, CachedSelectors.setSection_light_powerToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, powerToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_primitiveHeightToValue_( int section, int light, float primitiveHeightToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_primitiveHeightToValue_( Handle, CachedSelectors.setSection_light_primitiveHeightToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, primitiveHeightToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_primitiveRadiusToValue_( int section, int light, float primitiveRadiusToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_primitiveRadiusToValue_( Handle, CachedSelectors.setSection_light_primitiveRadiusToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, primitiveRadiusToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_primitiveSpacingToValue_( int section, int light, float primitiveSpacingToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_primitiveSpacingToValue_( Handle, CachedSelectors.setSection_light_primitiveSpacingToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, primitiveSpacingToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_primitiveThicknessToValue_( int section, int light, float primitiveThicknessToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_primitiveThicknessToValue_( Handle, CachedSelectors.setSection_light_primitiveThicknessToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, primitiveThicknessToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_primitiveTypeToValue_( int section, int light, int primitiveTypeToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_primitiveTypeToValue_( Handle, CachedSelectors.setSection_light_primitiveTypeToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( int ), section, light, primitiveTypeToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_primitiveWidthToValue_( int section, int light, float primitiveWidthToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_primitiveWidthToValue_( Handle, CachedSelectors.setSection_light_primitiveWidthToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, primitiveWidthToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_typeToValue_( int section, int light, int typeToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_typeToValue_( Handle, CachedSelectors.setSection_light_typeToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( int ), section, light, typeToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setSection_light_upperBlurRadiusToValue_( int section, int light, float upperBlurRadiusToValue ) {
			RuntimeObject ___occuredException;
			NativeMethods.setSection_light_upperBlurRadiusToValue_( Handle, CachedSelectors.setSection_light_upperBlurRadiusToValue_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), section, light, upperBlurRadiusToValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void transformEnclosedArea_by_( NObjective.RuntimeObject area, NObjective.RuntimeObject @by ) {
			RuntimeObject ___occuredException;
			NativeMethods.transformEnclosedArea_by_( Handle, CachedSelectors.transformEnclosedArea_by_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), area, @by );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void transformMask_by_( NObjective.RuntimeObject mask, NObjective.RuntimeObject @by ) {
			RuntimeObject ___occuredException;
			NativeMethods.transformMask_by_( Handle, CachedSelectors.transformMask_by_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), mask, @by );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void transformOutline_by_( NObjective.RuntimeObject outline, NObjective.RuntimeObject @by ) {
			RuntimeObject ___occuredException;
			NativeMethods.transformOutline_by_( Handle, CachedSelectors.transformOutline_by_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), outline, @by );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr adjust_brightness_andContrast_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject adjust, float brightness, float andContrast );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void adjustRed_green_blue_alpha_usingAdjustmentsOfHue_saturation_luminance_producingRed_green_blue_alpha_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float red, float green, float blue, float alpha, float usingAdjustmentsOfHue, float saturation, 
			float luminance, System.IntPtr producingRed, System.IntPtr green2, System.IntPtr blue2, System.IntPtr alpha2 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr bezierMaskWithPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject path );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr blend_over_blendKind_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject blend, NObjective.RuntimeObject over, int blendKind );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr blur_radius_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject blur, float radius );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr blur_radius_kind_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject blur, float radius, int kind );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr burn_into_opacity_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject burn, NObjective.RuntimeObject @into, float opacity );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float calculateFigure_size_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int figure, System.IntPtr size );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr calculateOutlineLayer_forResolutionData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int layer, System.IntPtr forResolutionData );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr calculateResolutionData_maskUnderTransform_withOutset_needsLofting_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data, NObjective.RuntimeObject maskUnderTransform, float withOutset, char needsLofting );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void closePath( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr colorWithColor_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject color );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr colorWithRed_green_blue_alpha_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float red, float green, float blue, float alpha );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr composite_atop_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject composite, NObjective.RuntimeObject atop );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr composite_into_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject composite, NObjective.RuntimeObject @into );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr composite_outOf_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject composite, NObjective.RuntimeObject outOf );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr composite_over_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject composite, NObjective.RuntimeObject over );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void curveToX1_andY1_andX2_andY2_andX3_andY3_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float x1, float andY1, float andX2, float andY2, float andX3, float andY3
			 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr customOutlineMask( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr darkerOf_and_opacity_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject of, NObjective.RuntimeObject and, float opacity );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr darkMetalBackgroundUsingTexture_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject texture );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr darkPaperBackgroundUsingTexture_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject texture );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr eMapPreviewForSection_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr gel_over_opacity_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject gel, NObjective.RuntimeObject over, float opacity );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr heightFieldFrom_radius_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @from, float radius );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr heightFieldFrom_radius_initial_constraint_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @from, float radius, NObjective.RuntimeObject initial, NObjective.RuntimeObject constraint );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr image_withOpacity_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject image, float withOpacity );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void initializeWidgetStructureAtX_y_forResolutionData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float x, float y, System.IntPtr forResolutionData );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void initialResetMeasurementsForResolution_withWidth_height_onlyIntegerSizes_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int resolution, float withWidth, float height, bool onlyIntegerSizes );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr invert_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject invert );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr keyForParameter_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int parameter );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr layerFrom_inRed_green_blue_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @from, float inRed, float green, float blue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr lightImageResult_lightIndex_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int result, int lightIndex );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr lightMetalBackgroundUsingTexture_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject texture );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr lightPaperBackgroundUsingTexture_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject texture );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void lineToX_andY_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float x, float andY );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr materialWarp_pull_choke_edge_flat_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject warp, float pull, float choke, float edge, float flat );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr metalBackgroundUsingTexture_andWidth_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject texture, float andWidth );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void moveToX_andY_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float x, float andY );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr multiply_with_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject multiply, NObjective.RuntimeObject with );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr proKitGrayBackgroundUsingTexture_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject texture );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void recalcFigure_forResolution_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int figure, int forResolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void recalcInsideShadow_forResolution_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int shadow, int forResolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void recalcInsideShadow_forResolutionData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int shadow, System.IntPtr forResolutionData );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void recalcMaskForResolution_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int resolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void recalcMaskForResolutionData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void recalcOutline_forResolution_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int outline, int forResolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void recalcOutline_forResolutionData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int outline, System.IntPtr forResolutionData );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void recalcOutsideShadow_forResolution_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int shadow, int forResolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void recalcOutsideShadow_forResolutionData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int shadow, System.IntPtr forResolutionData );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void recalcSection_eMapForResolution_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int eMapForResolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int section_lightBlendMode_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightBlendMode );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightBrightness_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightBrightness );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightColorAlpha_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightColorAlpha );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightColorBlue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightColorBlue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightColorGreen_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightColorGreen );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightColorRed_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightColorRed );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool section_lightEnabled_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightEnabled );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightImageAngle_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightImageAngle );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr section_lightImageName_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightImageName );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightImageScale_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightImageScale );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightImageXOffset_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightImageXOffset );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightImageYOffset_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightImageYOffset );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightLowerBlurRadius_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightLowerBlurRadius );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightMaskPositionX_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightMaskPositionX );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightMaskPositionY_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightMaskPositionY );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightMaskPositionZ_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightMaskPositionZ );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr section_lightName_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightName );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightPositionX_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightPositionX );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightPositionY_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightPositionY );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightPositionZ_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightPositionZ );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightPower_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightPower );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightPrimitiveHeight_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightPrimitiveHeight );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightPrimitiveRadius_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightPrimitiveRadius );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightPrimitiveSpacing_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightPrimitiveSpacing );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightPrimitiveThickness_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightPrimitiveThickness );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int section_lightPrimitiveType_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightPrimitiveType );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightPrimitiveWidth_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightPrimitiveWidth );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int section_lightType_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightType );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float section_lightUpperBlurRadius_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int lightUpperBlurRadius );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setCustomOutlineMask_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject mask );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_blendModeToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, int blendModeToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_brightnessToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float brightnessToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_colorAlphaToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float colorAlphaToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_colorBlueToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float colorBlueToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_colorGreenToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float colorGreenToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_colorRedToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float colorRedToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_enabledToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, bool enabledToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_imageAngleToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float imageAngleToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_imageNameToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, NObjective.RuntimeObject imageNameToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_imageScaleToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float imageScaleToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_imageXOffsetToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float imageXOffsetToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_imageYOffsetToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float imageYOffsetToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_lowerBlurRadiusToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float lowerBlurRadiusToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_maskPositionXToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float maskPositionXToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_maskPositionYToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float maskPositionYToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_maskPositionZToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float maskPositionZToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_nameToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, NObjective.RuntimeObject nameToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_positionXToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float positionXToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_positionYToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float positionYToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_positionZToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float positionZToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_powerToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float powerToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_primitiveHeightToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float primitiveHeightToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_primitiveRadiusToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float primitiveRadiusToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_primitiveSpacingToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float primitiveSpacingToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_primitiveThicknessToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float primitiveThicknessToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_primitiveTypeToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, int primitiveTypeToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_primitiveWidthToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float primitiveWidthToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_typeToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, int typeToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setSection_light_upperBlurRadiusToValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int section, int light, float upperBlurRadiusToValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr shadedImage_heightField_shading_scale_opacity_hasAlpha_transparency_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject image, NObjective.RuntimeObject heightField, NObjective.RuntimeObject shading, float scale, float opacity, char hasAlpha, 
			char transparency );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr shadowFrom_red_green_blue_opacity_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @from, float red, float green, float blue, float opacity );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr shadowFrom_red1_green1_blue1_alpha1_red2_green2_blue2_alpha2_opacity_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject @from, float red1, float green1, float blue1, float alpha1, float red2, 
			float green2, float blue2, float alpha2, float opacity );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr transfer_X_Y_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject transfer, float X, float Y );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void transformEnclosedArea_by_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject area, NObjective.RuntimeObject @by );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void transformMask_by_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject mask, NObjective.RuntimeObject @by );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void transformOutline_by_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject outline, NObjective.RuntimeObject @by );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int typeForParameter_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int parameter );
		}
		static internal class CachedSelectors {
			public static readonly Selector adjust_brightness_andContrast_ = "adjust:brightness:andContrast:";
			public static readonly Selector adjustRed_green_blue_alpha_usingAdjustmentsOfHue_saturation_luminance_producingRed_green_blue_alpha_ = "adjustRed:green:blue:alpha:usingAdjustmentsOfHue:saturation:luminance:producingRed:green:blue:alpha:";
			public static readonly Selector bezierMaskWithPath_ = "bezierMaskWithPath:";
			public static readonly Selector blend_over_blendKind_ = "blend:over:blendKind:";
			public static readonly Selector blur_radius_ = "blur:radius:";
			public static readonly Selector blur_radius_kind_ = "blur:radius:kind:";
			public static readonly Selector burn_into_opacity_ = "burn:into:opacity:";
			public static readonly Selector calculateFigure_size_ = "calculateFigure:size:";
			public static readonly Selector calculateOutlineLayer_forResolutionData_ = "calculateOutlineLayer:forResolutionData:";
			public static readonly Selector calculateResolutionData_maskUnderTransform_withOutset_needsLofting_ = "calculateResolutionData:maskUnderTransform:withOutset:needsLofting:";
			public static readonly Selector closePath = "closePath";
			public static readonly Selector colorWithColor_ = "colorWithColor:";
			public static readonly Selector colorWithRed_green_blue_alpha_ = "colorWithRed:green:blue:alpha:";
			public static readonly Selector composite_atop_ = "composite:atop:";
			public static readonly Selector composite_into_ = "composite:into:";
			public static readonly Selector composite_outOf_ = "composite:outOf:";
			public static readonly Selector composite_over_ = "composite:over:";
			public static readonly Selector curveToX1_andY1_andX2_andY2_andX3_andY3_ = "curveToX1:andY1:andX2:andY2:andX3:andY3:";
			public static readonly Selector customOutlineMask = "customOutlineMask";
			public static readonly Selector darkerOf_and_opacity_ = "darkerOf:and:opacity:";
			public static readonly Selector darkMetalBackgroundUsingTexture_ = "darkMetalBackgroundUsingTexture:";
			public static readonly Selector darkPaperBackgroundUsingTexture_ = "darkPaperBackgroundUsingTexture:";
			public static readonly Selector eMapPreviewForSection_ = "eMapPreviewForSection:";
			public static readonly Selector gel_over_opacity_ = "gel:over:opacity:";
			public static readonly Selector heightFieldFrom_radius_ = "heightFieldFrom:radius:";
			public static readonly Selector heightFieldFrom_radius_initial_constraint_ = "heightFieldFrom:radius:initial:constraint:";
			public static readonly Selector image_withOpacity_ = "image:withOpacity:";
			public static readonly Selector initializeWidgetStructureAtX_y_forResolutionData_ = "initializeWidgetStructureAtX:y:forResolutionData:";
			public static readonly Selector initialResetMeasurementsForResolution_withWidth_height_onlyIntegerSizes_ = "initialResetMeasurementsForResolution:withWidth:height:onlyIntegerSizes:";
			public static readonly Selector invert_ = "invert:";
			public static readonly Selector keyForParameter_ = "keyForParameter:";
			public static readonly Selector layerFrom_inRed_green_blue_ = "layerFrom:inRed:green:blue:";
			public static readonly Selector lightImageResult_lightIndex_ = "lightImageResult:lightIndex:";
			public static readonly Selector lightMetalBackgroundUsingTexture_ = "lightMetalBackgroundUsingTexture:";
			public static readonly Selector lightPaperBackgroundUsingTexture_ = "lightPaperBackgroundUsingTexture:";
			public static readonly Selector lineToX_andY_ = "lineToX:andY:";
			public static readonly Selector materialWarp_pull_choke_edge_flat_ = "materialWarp:pull:choke:edge:flat:";
			public static readonly Selector metalBackgroundUsingTexture_andWidth_ = "metalBackgroundUsingTexture:andWidth:";
			public static readonly Selector moveToX_andY_ = "moveToX:andY:";
			public static readonly Selector multiply_with_ = "multiply:with:";
			public static readonly Selector proKitGrayBackgroundUsingTexture_ = "proKitGrayBackgroundUsingTexture:";
			public static readonly Selector recalcFigure_forResolution_ = "recalcFigure:forResolution:";
			public static readonly Selector recalcInsideShadow_forResolution_ = "recalcInsideShadow:forResolution:";
			public static readonly Selector recalcInsideShadow_forResolutionData_ = "recalcInsideShadow:forResolutionData:";
			public static readonly Selector recalcMaskForResolution_ = "recalcMaskForResolution:";
			public static readonly Selector recalcMaskForResolutionData_ = "recalcMaskForResolutionData:";
			public static readonly Selector recalcOutline_forResolution_ = "recalcOutline:forResolution:";
			public static readonly Selector recalcOutline_forResolutionData_ = "recalcOutline:forResolutionData:";
			public static readonly Selector recalcOutsideShadow_forResolution_ = "recalcOutsideShadow:forResolution:";
			public static readonly Selector recalcOutsideShadow_forResolutionData_ = "recalcOutsideShadow:forResolutionData:";
			public static readonly Selector recalcSection_eMapForResolution_ = "recalcSection:eMapForResolution:";
			public static readonly Selector section_lightBlendMode_ = "section:lightBlendMode:";
			public static readonly Selector section_lightBrightness_ = "section:lightBrightness:";
			public static readonly Selector section_lightColorAlpha_ = "section:lightColorAlpha:";
			public static readonly Selector section_lightColorBlue_ = "section:lightColorBlue:";
			public static readonly Selector section_lightColorGreen_ = "section:lightColorGreen:";
			public static readonly Selector section_lightColorRed_ = "section:lightColorRed:";
			public static readonly Selector section_lightEnabled_ = "section:lightEnabled:";
			public static readonly Selector section_lightImageAngle_ = "section:lightImageAngle:";
			public static readonly Selector section_lightImageName_ = "section:lightImageName:";
			public static readonly Selector section_lightImageScale_ = "section:lightImageScale:";
			public static readonly Selector section_lightImageXOffset_ = "section:lightImageXOffset:";
			public static readonly Selector section_lightImageYOffset_ = "section:lightImageYOffset:";
			public static readonly Selector section_lightLowerBlurRadius_ = "section:lightLowerBlurRadius:";
			public static readonly Selector section_lightMaskPositionX_ = "section:lightMaskPositionX:";
			public static readonly Selector section_lightMaskPositionY_ = "section:lightMaskPositionY:";
			public static readonly Selector section_lightMaskPositionZ_ = "section:lightMaskPositionZ:";
			public static readonly Selector section_lightName_ = "section:lightName:";
			public static readonly Selector section_lightPositionX_ = "section:lightPositionX:";
			public static readonly Selector section_lightPositionY_ = "section:lightPositionY:";
			public static readonly Selector section_lightPositionZ_ = "section:lightPositionZ:";
			public static readonly Selector section_lightPower_ = "section:lightPower:";
			public static readonly Selector section_lightPrimitiveHeight_ = "section:lightPrimitiveHeight:";
			public static readonly Selector section_lightPrimitiveRadius_ = "section:lightPrimitiveRadius:";
			public static readonly Selector section_lightPrimitiveSpacing_ = "section:lightPrimitiveSpacing:";
			public static readonly Selector section_lightPrimitiveThickness_ = "section:lightPrimitiveThickness:";
			public static readonly Selector section_lightPrimitiveType_ = "section:lightPrimitiveType:";
			public static readonly Selector section_lightPrimitiveWidth_ = "section:lightPrimitiveWidth:";
			public static readonly Selector section_lightType_ = "section:lightType:";
			public static readonly Selector section_lightUpperBlurRadius_ = "section:lightUpperBlurRadius:";
			public static readonly Selector setCustomOutlineMask_ = "setCustomOutlineMask:";
			public static readonly Selector setSection_light_blendModeToValue_ = "setSection:light:blendModeToValue:";
			public static readonly Selector setSection_light_brightnessToValue_ = "setSection:light:brightnessToValue:";
			public static readonly Selector setSection_light_colorAlphaToValue_ = "setSection:light:colorAlphaToValue:";
			public static readonly Selector setSection_light_colorBlueToValue_ = "setSection:light:colorBlueToValue:";
			public static readonly Selector setSection_light_colorGreenToValue_ = "setSection:light:colorGreenToValue:";
			public static readonly Selector setSection_light_colorRedToValue_ = "setSection:light:colorRedToValue:";
			public static readonly Selector setSection_light_enabledToValue_ = "setSection:light:enabledToValue:";
			public static readonly Selector setSection_light_imageAngleToValue_ = "setSection:light:imageAngleToValue:";
			public static readonly Selector setSection_light_imageNameToValue_ = "setSection:light:imageNameToValue:";
			public static readonly Selector setSection_light_imageScaleToValue_ = "setSection:light:imageScaleToValue:";
			public static readonly Selector setSection_light_imageXOffsetToValue_ = "setSection:light:imageXOffsetToValue:";
			public static readonly Selector setSection_light_imageYOffsetToValue_ = "setSection:light:imageYOffsetToValue:";
			public static readonly Selector setSection_light_lowerBlurRadiusToValue_ = "setSection:light:lowerBlurRadiusToValue:";
			public static readonly Selector setSection_light_maskPositionXToValue_ = "setSection:light:maskPositionXToValue:";
			public static readonly Selector setSection_light_maskPositionYToValue_ = "setSection:light:maskPositionYToValue:";
			public static readonly Selector setSection_light_maskPositionZToValue_ = "setSection:light:maskPositionZToValue:";
			public static readonly Selector setSection_light_nameToValue_ = "setSection:light:nameToValue:";
			public static readonly Selector setSection_light_positionXToValue_ = "setSection:light:positionXToValue:";
			public static readonly Selector setSection_light_positionYToValue_ = "setSection:light:positionYToValue:";
			public static readonly Selector setSection_light_positionZToValue_ = "setSection:light:positionZToValue:";
			public static readonly Selector setSection_light_powerToValue_ = "setSection:light:powerToValue:";
			public static readonly Selector setSection_light_primitiveHeightToValue_ = "setSection:light:primitiveHeightToValue:";
			public static readonly Selector setSection_light_primitiveRadiusToValue_ = "setSection:light:primitiveRadiusToValue:";
			public static readonly Selector setSection_light_primitiveSpacingToValue_ = "setSection:light:primitiveSpacingToValue:";
			public static readonly Selector setSection_light_primitiveThicknessToValue_ = "setSection:light:primitiveThicknessToValue:";
			public static readonly Selector setSection_light_primitiveTypeToValue_ = "setSection:light:primitiveTypeToValue:";
			public static readonly Selector setSection_light_primitiveWidthToValue_ = "setSection:light:primitiveWidthToValue:";
			public static readonly Selector setSection_light_typeToValue_ = "setSection:light:typeToValue:";
			public static readonly Selector setSection_light_upperBlurRadiusToValue_ = "setSection:light:upperBlurRadiusToValue:";
			public static readonly Selector shadedImage_heightField_shading_scale_opacity_hasAlpha_transparency_ = "shadedImage:heightField:shading:scale:opacity:hasAlpha:transparency:";
			public static readonly Selector shadowFrom_red_green_blue_opacity_ = "shadowFrom:red:green:blue:opacity:";
			public static readonly Selector shadowFrom_red1_green1_blue1_alpha1_red2_green2_blue2_alpha2_opacity_ = "shadowFrom:red1:green1:blue1:alpha1:red2:green2:blue2:alpha2:opacity:";
			public static readonly Selector transfer_X_Y_ = "transfer:X:Y:";
			public static readonly Selector transformEnclosedArea_by_ = "transformEnclosedArea:by:";
			public static readonly Selector transformMask_by_ = "transformMask:by:";
			public static readonly Selector transformOutline_by_ = "transformOutline:by:";
			public static readonly Selector typeForParameter_ = "typeForParameter:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIUIBundleBase : IEquatable<CIUIBundleBase> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIUIBundleBase;
		public static implicit operator NSObject( CIUIBundleBase value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIUIBundleBase value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIUIBundleBase value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIUIBundleBase?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIUIBundleBase value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIUIBundleBase value1, CIUIBundleBase value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIUIBundleBase value1, CIUIBundleBase value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIUIBundleBase( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIUIBundleBase alloc() {
			return new CIUIBundleBase( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static NObjective.RuntimeObject arrayOrNumberFromResolutions_andValues_withCount_( System.IntPtr resolutions, System.IntPtr andValues, int withCount ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.arrayOrNumberFromResolutions_andValues_withCount_( ClassHandle, CachedSelectors.arrayOrNumberFromResolutions_andValues_withCount_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( int ), resolutions, andValues, withCount );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static void computeLinearA_andB_fromX0_y0_x1_y1_( System.IntPtr a, System.IntPtr andB, float fromX0, float y0, float x1, float y1 ) {
			RuntimeObject ___occuredException;
			NativeMethods.computeLinearA_andB_fromX0_y0_x1_y1_( ClassHandle, CachedSelectors.computeLinearA_andB_fromX0_y0_x1_y1_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), a, andB, fromX0, y0, x1, y1
			 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static NObjective.RuntimeObject dropFirstComponent_( NObjective.RuntimeObject component ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.dropFirstComponent_( ClassHandle, CachedSelectors.dropFirstComponent_, out ___occuredException, sizeof( NObjective.RuntimeObject ), component );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject dropLastComponent_( NObjective.RuntimeObject component ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.dropLastComponent_( ClassHandle, CachedSelectors.dropLastComponent_, out ___occuredException, sizeof( NObjective.RuntimeObject ), component );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static float evaluateFromResolutionArray_valueArray_arrayCount_atResolution_( System.IntPtr array, System.IntPtr valueArray, int arrayCount, float atResolution ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.evaluateFromResolutionArray_valueArray_arrayCount_atResolution_( ClassHandle, CachedSelectors.evaluateFromResolutionArray_valueArray_arrayCount_atResolution_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( int ) + sizeof( float ), array, valueArray, arrayCount, atResolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static NObjective.RuntimeObject firstComponent_( NObjective.RuntimeObject component ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.firstComponent_( ClassHandle, CachedSelectors.firstComponent_, out ___occuredException, sizeof( NObjective.RuntimeObject ), component );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static bool isLinearX0_y0_x1_y1_x2_y2_( float x0, float y0, float x1, float y1, float x2, float y2 ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isLinearX0_y0_x1_y1_x2_y2_( ClassHandle, CachedSelectors.isLinearX0_y0_x1_y1_x2_y2_, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), x0, y0, x1, y1, x2, y2
			 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public static NObjective.RuntimeObject lastComponent_( NObjective.RuntimeObject component ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.lastComponent_( ClassHandle, CachedSelectors.lastComponent_, out ___occuredException, sizeof( NObjective.RuntimeObject ), component );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static void simplifyFloatString_to_( System.IntPtr @string, System.IntPtr to ) {
			RuntimeObject ___occuredException;
			NativeMethods.simplifyFloatString_to_( ClassHandle, CachedSelectors.simplifyFloatString_to_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ), @string, to );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public static void values_forResolutions_withCount_fromArrayOrNumber_( System.IntPtr values, System.IntPtr forResolutions, int withCount, NObjective.RuntimeObject fromArrayOrNumber ) {
			RuntimeObject ___occuredException;
			NativeMethods.values_forResolutions_withCount_fromArrayOrNumber_( ClassHandle, CachedSelectors.values_forResolutions_withCount_fromArrayOrNumber_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( int ) + sizeof( NObjective.RuntimeObject ), values, forResolutions, withCount, fromArrayOrNumber );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void addNewPropertiesToRecipe_( NObjective.RuntimeObject recipe ) {
			RuntimeObject ___occuredException;
			NativeMethods.addNewPropertiesToRecipe_( Handle, CachedSelectors.addNewPropertiesToRecipe_, out ___occuredException, sizeof( NObjective.RuntimeObject ), recipe );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void addSubnode_( NObjective.RuntimeObject subnode ) {
			RuntimeObject ___occuredException;
			NativeMethods.addSubnode_( Handle, CachedSelectors.addSubnode_, out ___occuredException, sizeof( NObjective.RuntimeObject ), subnode );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public bool atRoot() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.atRoot( Handle, CachedSelectors.atRoot, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool boolParameterValue_( int value ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.boolParameterValue_( Handle, CachedSelectors.boolParameterValue_, out ___occuredException, sizeof( int ), value );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject bundle() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.bundle( Handle, CachedSelectors.bundle, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject bundlePath() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.bundlePath( Handle, CachedSelectors.bundlePath, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject buttonResultForPPI_centerX_Y_( float ppi, float centerX, float Y ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.buttonResultForPPI_centerX_Y_( Handle, CachedSelectors.buttonResultForPPI_centerX_Y_, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ), ppi, centerX, Y );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject buttonResultForResolution_( int resolution ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.buttonResultForResolution_( Handle, CachedSelectors.buttonResultForResolution_, out ___occuredException, sizeof( int ), resolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject buttonResultForResolutionData_( System.IntPtr data ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.buttonResultForResolutionData_( Handle, CachedSelectors.buttonResultForResolutionData_, out ___occuredException, sizeof( System.IntPtr ), data );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public char changes() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.changes( Handle, CachedSelectors.changes, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void closeRoot() {
			RuntimeObject ___occuredException;
			NativeMethods.closeRoot( Handle, CachedSelectors.closeRoot, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void closeRootAfterSaving() {
			RuntimeObject ___occuredException;
			NativeMethods.closeRootAfterSaving( Handle, CachedSelectors.closeRootAfterSaving, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void computeInterpolatedResolution_data_( float resolution, System.IntPtr data ) {
			RuntimeObject ___occuredException;
			NativeMethods.computeInterpolatedResolution_data_( Handle, CachedSelectors.computeInterpolatedResolution_data_, out ___occuredException, sizeof( float ) + sizeof( System.IntPtr ), resolution, data );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public char containsAmbiguousPaths_inCategory_replacingNode_subtreeWith_( NObjective.RuntimeObject paths, NObjective.RuntimeObject inCategory, NObjective.RuntimeObject replacingNode, NObjective.RuntimeObject subtreeWith ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.containsAmbiguousPaths_inCategory_replacingNode_subtreeWith_( Handle, CachedSelectors.containsAmbiguousPaths_inCategory_replacingNode_subtreeWith_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), paths, inCategory, replacingNode, subtreeWith );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void copyResolution_into_( int resolution, int @into ) {
			RuntimeObject ___occuredException;
			NativeMethods.copyResolution_into_( Handle, CachedSelectors.copyResolution_into_, out ___occuredException, sizeof( int ) + sizeof( int ), resolution, @into );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void copyResolutionData_into_withRatio_( System.IntPtr data, System.IntPtr @into, float withRatio ) {
			RuntimeObject ___occuredException;
			NativeMethods.copyResolutionData_into_withRatio_( Handle, CachedSelectors.copyResolutionData_into_withRatio_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( float ), data, @into, withRatio );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject copySubtreePattern() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.copySubtreePattern( Handle, CachedSelectors.copySubtreePattern, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject dataForPPI_( float ppi ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.dataForPPI_( Handle, CachedSelectors.dataForPPI_, out ___occuredException, sizeof( float ), ppi );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject dataForResolutionData_( System.IntPtr data ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.dataForResolutionData_( Handle, CachedSelectors.dataForResolutionData_, out ___occuredException, sizeof( System.IntPtr ), data );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject deepNodeCopy_( NObjective.RuntimeObject copy ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.deepNodeCopy_( Handle, CachedSelectors.deepNodeCopy_, out ___occuredException, sizeof( NObjective.RuntimeObject ), copy );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject deepPropertiesCopy_( NObjective.RuntimeObject copy ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.deepPropertiesCopy_( Handle, CachedSelectors.deepPropertiesCopy_, out ___occuredException, sizeof( NObjective.RuntimeObject ), copy );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject deepSubnodeCopy_( NObjective.RuntimeObject copy ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.deepSubnodeCopy_( Handle, CachedSelectors.deepSubnodeCopy_, out ___occuredException, sizeof( NObjective.RuntimeObject ), copy );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void deleteNode() {
			RuntimeObject ___occuredException;
			NativeMethods.deleteNode( Handle, CachedSelectors.deleteNode, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void differenceParameter_new_old_into_( int parameter, NObjective.RuntimeObject @new, NObjective.RuntimeObject old, NObjective.RuntimeObject @into ) {
			RuntimeObject ___occuredException;
			NativeMethods.differenceParameter_new_old_into_( Handle, CachedSelectors.differenceParameter_new_old_into_, out ___occuredException, sizeof( int ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), parameter, @new, old, @into );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public float enforceParameter_interpolatedValue_( int parameter, float interpolatedValue ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.enforceParameter_interpolatedValue_( Handle, CachedSelectors.enforceParameter_interpolatedValue_, out ___occuredException, sizeof( int ) + sizeof( float ), parameter, interpolatedValue );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float floatParameterValue_forResolution_( int value, int forResolution ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.floatParameterValue_forResolution_( Handle, CachedSelectors.floatParameterValue_forResolution_, out ___occuredException, sizeof( int ) + sizeof( int ), value, forResolution );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void getResolutionData_carbonMetricsTop_left_bottom_right_( System.IntPtr data, System.IntPtr carbonMetricsTop, System.IntPtr left, System.IntPtr bottom, System.IntPtr right ) {
			RuntimeObject ___occuredException;
			NativeMethods.getResolutionData_carbonMetricsTop_left_bottom_right_( Handle, CachedSelectors.getResolutionData_carbonMetricsTop_left_bottom_right_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ), data, carbonMetricsTop, left, bottom, right );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void getResolutionData_chopMetricsHoriz_vert_horizRight_vertBottom_chopType_( System.IntPtr data, System.IntPtr chopMetricsHoriz, System.IntPtr vert, System.IntPtr horizRight, System.IntPtr vertBottom, System.IntPtr chopType ) {
			RuntimeObject ___occuredException;
			NativeMethods.getResolutionData_chopMetricsHoriz_vert_horizRight_vertBottom_chopType_( Handle, CachedSelectors.getResolutionData_chopMetricsHoriz_vert_horizRight_vertBottom_chopType_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ), data, chopMetricsHoriz, vert, horizRight, vertBottom, chopType
			 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void getResolutionData_figureMetricsTop_left_bottom_right_( System.IntPtr data, System.IntPtr figureMetricsTop, System.IntPtr left, System.IntPtr bottom, System.IntPtr right ) {
			RuntimeObject ___occuredException;
			NativeMethods.getResolutionData_figureMetricsTop_left_bottom_right_( Handle, CachedSelectors.getResolutionData_figureMetricsTop_left_bottom_right_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ), data, figureMetricsTop, left, bottom, right );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void getResolutionData_labelMetricsTop_left_bottom_right_baselineY_( System.IntPtr data, System.IntPtr labelMetricsTop, System.IntPtr left, System.IntPtr bottom, System.IntPtr right, System.IntPtr baselineY ) {
			RuntimeObject ___occuredException;
			NativeMethods.getResolutionData_labelMetricsTop_left_bottom_right_baselineY_( Handle, CachedSelectors.getResolutionData_labelMetricsTop_left_bottom_right_baselineY_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ), data, labelMetricsTop, left, bottom, right, baselineY
			 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void getResolutionData_padMetricsTop_left_bottom_right_( System.IntPtr data, System.IntPtr padMetricsTop, System.IntPtr left, System.IntPtr bottom, System.IntPtr right ) {
			RuntimeObject ___occuredException;
			NativeMethods.getResolutionData_padMetricsTop_left_bottom_right_( Handle, CachedSelectors.getResolutionData_padMetricsTop_left_bottom_right_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ), data, padMetricsTop, left, bottom, right );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject imageWithPath_( NObjective.RuntimeObject path ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithPath_( Handle, CachedSelectors.imageWithPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ), path );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject imageWithPathInner_( NObjective.RuntimeObject inner ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.imageWithPathInner_( Handle, CachedSelectors.imageWithPathInner_, out ___occuredException, sizeof( NObjective.RuntimeObject ), inner );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void initialize_( System.IntPtr initialize ) {
			RuntimeObject ___occuredException;
			NativeMethods.initialize_( Handle, CachedSelectors.initialize_, out ___occuredException, sizeof( System.IntPtr ), initialize );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void initializeFiles() {
			RuntimeObject ___occuredException;
			NativeMethods.initializeFiles( Handle, CachedSelectors.initializeFiles, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void initializeParameterDataStructures() {
			RuntimeObject ___occuredException;
			NativeMethods.initializeParameterDataStructures( Handle, CachedSelectors.initializeParameterDataStructures, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void initPointersForResolutionData_( System.IntPtr data ) {
			RuntimeObject ___occuredException;
			NativeMethods.initPointersForResolutionData_( Handle, CachedSelectors.initPointersForResolutionData_, out ___occuredException, sizeof( System.IntPtr ), data );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void initResolutionData() {
			RuntimeObject ___occuredException;
			NativeMethods.initResolutionData( Handle, CachedSelectors.initResolutionData, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void installRatio_intoResolutionData_( float ratio, System.IntPtr intoResolutionData ) {
			RuntimeObject ___occuredException;
			NativeMethods.installRatio_intoResolutionData_( Handle, CachedSelectors.installRatio_intoResolutionData_, out ___occuredException, sizeof( float ) + sizeof( System.IntPtr ), ratio, intoResolutionData );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public int intParameterValue_( int value ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.intParameterValue_( Handle, CachedSelectors.intParameterValue_, out ___occuredException, sizeof( int ), value );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool isAmbiguousAfterAddingNewSubnodeWithName_( NObjective.RuntimeObject name ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isAmbiguousAfterAddingNewSubnodeWithName_( Handle, CachedSelectors.isAmbiguousAfterAddingNewSubnodeWithName_, out ___occuredException, sizeof( NObjective.RuntimeObject ), name );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool isAmbiguousAfterPastingSubtree_( NObjective.RuntimeObject subtree ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isAmbiguousAfterPastingSubtree_( Handle, CachedSelectors.isAmbiguousAfterPastingSubtree_, out ___occuredException, sizeof( NObjective.RuntimeObject ), subtree );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool isAmbiguousAfterRenamingNodeToNewName_( NObjective.RuntimeObject name ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isAmbiguousAfterRenamingNodeToNewName_( Handle, CachedSelectors.isAmbiguousAfterRenamingNodeToNewName_, out ___occuredException, sizeof( NObjective.RuntimeObject ), name );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool isSubtree() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.isSubtree( Handle, CachedSelectors.isSubtree, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void loadRecipeOverrides_recalcPointers_( NObjective.RuntimeObject overrides, char recalcPointers ) {
			RuntimeObject ___occuredException;
			NativeMethods.loadRecipeOverrides_recalcPointers_( Handle, CachedSelectors.loadRecipeOverrides_recalcPointers_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( char ), overrides, recalcPointers );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void @lock() {
			RuntimeObject ___occuredException;
			NativeMethods.@lock( Handle, CachedSelectors.@lock, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void openCategoryFile_( NObjective.RuntimeObject file ) {
			RuntimeObject ___occuredException;
			NativeMethods.openCategoryFile_( Handle, CachedSelectors.openCategoryFile_, out ___occuredException, sizeof( NObjective.RuntimeObject ), file );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void openCategoryFile_withData_( NObjective.RuntimeObject file, NObjective.RuntimeObject withData ) {
			RuntimeObject ___occuredException;
			NativeMethods.openCategoryFile_withData_( Handle, CachedSelectors.openCategoryFile_withData_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), file, withData );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void openCategoryFileForEditing_( NObjective.RuntimeObject editing ) {
			RuntimeObject ___occuredException;
			NativeMethods.openCategoryFileForEditing_( Handle, CachedSelectors.openCategoryFileForEditing_, out ___occuredException, sizeof( NObjective.RuntimeObject ), editing );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void openCategoryFileForEditing_withData_( NObjective.RuntimeObject editing, NObjective.RuntimeObject withData ) {
			RuntimeObject ___occuredException;
			NativeMethods.openCategoryFileForEditing_withData_( Handle, CachedSelectors.openCategoryFileForEditing_withData_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), editing, withData );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void openRoot_( char root ) {
			RuntimeObject ___occuredException;
			NativeMethods.openRoot_( Handle, CachedSelectors.openRoot_, out ___occuredException, sizeof( char ), root );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void openRootForEditing() {
			RuntimeObject ___occuredException;
			NativeMethods.openRootForEditing( Handle, CachedSelectors.openRootForEditing, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public char parameter_differs_from_( int parameter, NObjective.RuntimeObject differs, NObjective.RuntimeObject @from ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.parameter_differs_from_( Handle, CachedSelectors.parameter_differs_from_, out ___occuredException, sizeof( int ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), parameter, differs, @from );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public int parameterForKey_( NObjective.RuntimeObject key ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.parameterForKey_( Handle, CachedSelectors.parameterForKey_, out ___occuredException, sizeof( NObjective.RuntimeObject ), key );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void pasteSubtreePattern_( NObjective.RuntimeObject pattern ) {
			RuntimeObject ___occuredException;
			NativeMethods.pasteSubtreePattern_( Handle, CachedSelectors.pasteSubtreePattern_, out ___occuredException, sizeof( NObjective.RuntimeObject ), pattern );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject path() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.path( Handle, CachedSelectors.path, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public bool permutedPath_matchesUnder_at_( NObjective.RuntimeObject path, NObjective.RuntimeObject matchesUnder, NObjective.RuntimeObject at ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.permutedPath_matchesUnder_at_( Handle, CachedSelectors.permutedPath_matchesUnder_at_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), path, matchesUnder, at );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void popSubnode() {
			RuntimeObject ___occuredException;
			NativeMethods.popSubnode( Handle, CachedSelectors.popSubnode, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void processNode_permutations_path_replacingNode_subtreeWith_into_( NObjective.RuntimeObject node, NObjective.RuntimeObject permutations, NObjective.RuntimeObject path, NObjective.RuntimeObject replacingNode, NObjective.RuntimeObject subtreeWith, NObjective.RuntimeObject @into ) {
			RuntimeObject ___occuredException;
			NativeMethods.processNode_permutations_path_replacingNode_subtreeWith_into_( Handle, CachedSelectors.processNode_permutations_path_replacingNode_subtreeWith_into_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), node, permutations, path, replacingNode, subtreeWith, @into
			 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject properties() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.properties( Handle, CachedSelectors.properties, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void pushSubnode_recalcPointers_( NObjective.RuntimeObject subnode, char recalcPointers ) {
			RuntimeObject ___occuredException;
			NativeMethods.pushSubnode_recalcPointers_( Handle, CachedSelectors.pushSubnode_recalcPointers_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( char ), subnode, recalcPointers );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void pushSubnodeForEditing_( NObjective.RuntimeObject editing ) {
			RuntimeObject ___occuredException;
			NativeMethods.pushSubnodeForEditing_( Handle, CachedSelectors.pushSubnodeForEditing_, out ___occuredException, sizeof( NObjective.RuntimeObject ), editing );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void quiesce() {
			RuntimeObject ___occuredException;
			NativeMethods.quiesce( Handle, CachedSelectors.quiesce, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void recalcPointersForResolutionData_mask_firstRes_( System.IntPtr data, uint mask, System.IntPtr firstRes ) {
			RuntimeObject ___occuredException;
			NativeMethods.recalcPointersForResolutionData_mask_firstRes_( Handle, CachedSelectors.recalcPointersForResolutionData_mask_firstRes_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( uint ) + sizeof( System.IntPtr ), data, mask, firstRes );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void recenterResolutionData_toX_andY_( System.IntPtr data, float toX, float andY ) {
			RuntimeObject ___occuredException;
			NativeMethods.recenterResolutionData_toX_andY_( Handle, CachedSelectors.recenterResolutionData_toX_andY_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( float ) + sizeof( float ), data, toX, andY );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject recipe() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.recipe( Handle, CachedSelectors.recipe, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject recipeDifference_with_( NObjective.RuntimeObject difference, NObjective.RuntimeObject with ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.recipeDifference_with_( Handle, CachedSelectors.recipeDifference_with_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), difference, with );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public char recipeDiffers_from_( NObjective.RuntimeObject differs, NObjective.RuntimeObject @from ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.recipeDiffers_from_( Handle, CachedSelectors.recipeDiffers_from_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ), differs, @from );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void renameNode_( NObjective.RuntimeObject node ) {
			RuntimeObject ___occuredException;
			NativeMethods.renameNode_( Handle, CachedSelectors.renameNode_, out ___occuredException, sizeof( NObjective.RuntimeObject ), node );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void renderResolutionData_toBitmap_width_height_bytesPerRow_( System.IntPtr data, System.IntPtr toBitmap, System.IntPtr width, System.IntPtr height, System.IntPtr bytesPerRow ) {
			RuntimeObject ___occuredException;
			NativeMethods.renderResolutionData_toBitmap_width_height_bytesPerRow_( Handle, CachedSelectors.renderResolutionData_toBitmap_width_height_bytesPerRow_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ) + sizeof( System.IntPtr ), data, toBitmap, width, height, bytesPerRow );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void restoreParameter_from_( int parameter, NObjective.RuntimeObject @from ) {
			RuntimeObject ___occuredException;
			NativeMethods.restoreParameter_from_( Handle, CachedSelectors.restoreParameter_from_, out ___occuredException, sizeof( int ) + sizeof( NObjective.RuntimeObject ), parameter, @from );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void restorePreviousParameterValue_( NObjective.RuntimeObject value ) {
			RuntimeObject ___occuredException;
			NativeMethods.restorePreviousParameterValue_( Handle, CachedSelectors.restorePreviousParameterValue_, out ___occuredException, sizeof( NObjective.RuntimeObject ), value );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void restoreResolutionData_from_( System.IntPtr data, System.IntPtr @from ) {
			RuntimeObject ___occuredException;
			NativeMethods.restoreResolutionData_from_( Handle, CachedSelectors.restoreResolutionData_from_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ), data, @from );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void restoreResolutions() {
			RuntimeObject ___occuredException;
			NativeMethods.restoreResolutions( Handle, CachedSelectors.restoreResolutions, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject rootData() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.rootData( Handle, CachedSelectors.rootData, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public bool rootIsNil() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.rootIsNil( Handle, CachedSelectors.rootIsNil, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool rootIsOpen() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.rootIsOpen( Handle, CachedSelectors.rootIsOpen, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void saveParameter_to_( int parameter, NObjective.RuntimeObject to ) {
			RuntimeObject ___occuredException;
			NativeMethods.saveParameter_to_( Handle, CachedSelectors.saveParameter_to_, out ___occuredException, sizeof( int ) + sizeof( NObjective.RuntimeObject ), parameter, to );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void saveRecipeChanges() {
			RuntimeObject ___occuredException;
			NativeMethods.saveRecipeChanges( Handle, CachedSelectors.saveRecipeChanges, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void saveResolutionData_into_( System.IntPtr data, System.IntPtr @into ) {
			RuntimeObject ___occuredException;
			NativeMethods.saveResolutionData_into_( Handle, CachedSelectors.saveResolutionData_into_, out ___occuredException, sizeof( System.IntPtr ) + sizeof( System.IntPtr ), data, @into );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void saveResolutions() {
			RuntimeObject ___occuredException;
			NativeMethods.saveResolutions( Handle, CachedSelectors.saveResolutions, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void saveRoot() {
			RuntimeObject ___occuredException;
			NativeMethods.saveRoot( Handle, CachedSelectors.saveRoot, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setBoolParameterValue_to_( int value, bool to ) {
			RuntimeObject ___occuredException;
			NativeMethods.setBoolParameterValue_to_( Handle, CachedSelectors.setBoolParameterValue_to_, out ___occuredException, sizeof( int ) + sizeof( bool ), value, to );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setBoolParameterValue_to_inResolutionData_( int value, bool to, System.IntPtr inResolutionData ) {
			RuntimeObject ___occuredException;
			NativeMethods.setBoolParameterValue_to_inResolutionData_( Handle, CachedSelectors.setBoolParameterValue_to_inResolutionData_, out ___occuredException, sizeof( int ) + sizeof( bool ) + sizeof( System.IntPtr ), value, to, inResolutionData );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setBundlePath_( NObjective.RuntimeObject path ) {
			RuntimeObject ___occuredException;
			NativeMethods.setBundlePath_( Handle, CachedSelectors.setBundlePath_, out ___occuredException, sizeof( NObjective.RuntimeObject ), path );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setChanges_( char changes ) {
			RuntimeObject ___occuredException;
			NativeMethods.setChanges_( Handle, CachedSelectors.setChanges_, out ___occuredException, sizeof( char ), changes );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setFloatParameterValue_forResolution_to_( int value, int forResolution, float to ) {
			RuntimeObject ___occuredException;
			NativeMethods.setFloatParameterValue_forResolution_to_( Handle, CachedSelectors.setFloatParameterValue_forResolution_to_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( float ), value, forResolution, to );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setFloatParameterValue_to_( int value, float to ) {
			RuntimeObject ___occuredException;
			NativeMethods.setFloatParameterValue_to_( Handle, CachedSelectors.setFloatParameterValue_to_, out ___occuredException, sizeof( int ) + sizeof( float ), value, to );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setFloatParameterValue_to_inResolutionData_( int value, float to, System.IntPtr inResolutionData ) {
			RuntimeObject ___occuredException;
			NativeMethods.setFloatParameterValue_to_inResolutionData_( Handle, CachedSelectors.setFloatParameterValue_to_inResolutionData_, out ___occuredException, sizeof( int ) + sizeof( float ) + sizeof( System.IntPtr ), value, to, inResolutionData );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setIntParameterValue_to_( int value, int to ) {
			RuntimeObject ___occuredException;
			NativeMethods.setIntParameterValue_to_( Handle, CachedSelectors.setIntParameterValue_to_, out ___occuredException, sizeof( int ) + sizeof( int ), value, to );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setIntParameterValue_to_inResolutionData_( int value, int to, System.IntPtr inResolutionData ) {
			RuntimeObject ___occuredException;
			NativeMethods.setIntParameterValue_to_inResolutionData_( Handle, CachedSelectors.setIntParameterValue_to_inResolutionData_, out ___occuredException, sizeof( int ) + sizeof( int ) + sizeof( System.IntPtr ), value, to, inResolutionData );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public bool setPath_( NObjective.RuntimeObject path ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.setPath_( Handle, CachedSelectors.setPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ), path );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public bool setPathForEditing_( NObjective.RuntimeObject editing ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.setPathForEditing_( Handle, CachedSelectors.setPathForEditing_, out ___occuredException, sizeof( NObjective.RuntimeObject ), editing );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void setPhase_( float phase ) {
			RuntimeObject ___occuredException;
			NativeMethods.setPhase_( Handle, CachedSelectors.setPhase_, out ___occuredException, sizeof( float ), phase );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void setReadOnly() {
			RuntimeObject ___occuredException;
			NativeMethods.setReadOnly( Handle, CachedSelectors.setReadOnly, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public int setStringParameterValue_to_( int value, NObjective.RuntimeObject to ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.setStringParameterValue_to_( Handle, CachedSelectors.setStringParameterValue_to_, out ___occuredException, sizeof( int ) + sizeof( NObjective.RuntimeObject ), value, to );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public NObjective.RuntimeObject stringParameterValue_( int value ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.stringParameterValue_( Handle, CachedSelectors.stringParameterValue_, out ___occuredException, sizeof( int ), value );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject subnodesDictionaryForPath_( NObjective.RuntimeObject path ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.subnodesDictionaryForPath_( Handle, CachedSelectors.subnodesDictionaryForPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ), path );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public void terminateResolutionData() {
			RuntimeObject ___occuredException;
			NativeMethods.terminateResolutionData( Handle, CachedSelectors.terminateResolutionData, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void termPointersForResolutionData_( System.IntPtr data ) {
			RuntimeObject ___occuredException;
			NativeMethods.termPointersForResolutionData_( Handle, CachedSelectors.termPointersForResolutionData_, out ___occuredException, sizeof( System.IntPtr ), data );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void unlock() {
			RuntimeObject ___occuredException;
			NativeMethods.unlock( Handle, CachedSelectors.unlock, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void unquiesce() {
			RuntimeObject ___occuredException;
			NativeMethods.unquiesce( Handle, CachedSelectors.unquiesce, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void updateRoot() {
			RuntimeObject ___occuredException;
			NativeMethods.updateRoot( Handle, CachedSelectors.updateRoot, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public bool verifyPath_( NObjective.RuntimeObject path ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.verifyPath_( Handle, CachedSelectors.verifyPath_, out ___occuredException, sizeof( NObjective.RuntimeObject ), path );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void addNewPropertiesToRecipe_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject recipe );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void addSubnode_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject subnode );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr arrayOrNumberFromResolutions_andValues_withCount_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr resolutions, System.IntPtr andValues, int withCount );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool atRoot( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool boolParameterValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int value );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr bundle( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr bundlePath( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr buttonResultForPPI_centerX_Y_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float ppi, float centerX, float Y );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr buttonResultForResolution_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int resolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr buttonResultForResolutionData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char changes( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void closeRoot( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void closeRootAfterSaving( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void computeInterpolatedResolution_data_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float resolution, System.IntPtr data );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void computeLinearA_andB_fromX0_y0_x1_y1_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr a, System.IntPtr andB, float fromX0, float y0, float x1, float y1
			 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char containsAmbiguousPaths_inCategory_replacingNode_subtreeWith_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject paths, NObjective.RuntimeObject inCategory, NObjective.RuntimeObject replacingNode, NObjective.RuntimeObject subtreeWith );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void copyResolution_into_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int resolution, int @into );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void copyResolutionData_into_withRatio_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data, System.IntPtr @into, float withRatio );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr copySubtreePattern( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr dataForPPI_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float ppi );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr dataForResolutionData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr deepNodeCopy_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject copy );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr deepPropertiesCopy_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject copy );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr deepSubnodeCopy_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject copy );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void deleteNode( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void differenceParameter_new_old_into_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int parameter, NObjective.RuntimeObject @new, NObjective.RuntimeObject old, NObjective.RuntimeObject @into );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr dropFirstComponent_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject component );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr dropLastComponent_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject component );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float enforceParameter_interpolatedValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int parameter, float interpolatedValue );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float evaluateFromResolutionArray_valueArray_arrayCount_atResolution_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr array, System.IntPtr valueArray, int arrayCount, float atResolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr firstComponent_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject component );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float floatParameterValue_forResolution_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int value, int forResolution );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void getResolutionData_carbonMetricsTop_left_bottom_right_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data, System.IntPtr carbonMetricsTop, System.IntPtr left, System.IntPtr bottom, System.IntPtr right );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void getResolutionData_chopMetricsHoriz_vert_horizRight_vertBottom_chopType_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data, System.IntPtr chopMetricsHoriz, System.IntPtr vert, System.IntPtr horizRight, System.IntPtr vertBottom, System.IntPtr chopType
			 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void getResolutionData_figureMetricsTop_left_bottom_right_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data, System.IntPtr figureMetricsTop, System.IntPtr left, System.IntPtr bottom, System.IntPtr right );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void getResolutionData_labelMetricsTop_left_bottom_right_baselineY_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data, System.IntPtr labelMetricsTop, System.IntPtr left, System.IntPtr bottom, System.IntPtr right, System.IntPtr baselineY
			 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void getResolutionData_padMetricsTop_left_bottom_right_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data, System.IntPtr padMetricsTop, System.IntPtr left, System.IntPtr bottom, System.IntPtr right );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject path );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr imageWithPathInner_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject inner );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void initialize_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr initialize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void initializeFiles( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void initializeParameterDataStructures( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void initPointersForResolutionData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void initResolutionData( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void installRatio_intoResolutionData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float ratio, System.IntPtr intoResolutionData );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int intParameterValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int value );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isAmbiguousAfterAddingNewSubnodeWithName_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isAmbiguousAfterPastingSubtree_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject subtree );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isAmbiguousAfterRenamingNodeToNewName_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject name );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isLinearX0_y0_x1_y1_x2_y2_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float x0, float y0, float x1, float y1, float x2, float y2
			 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool isSubtree( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr lastComponent_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject component );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void loadRecipeOverrides_recalcPointers_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject overrides, char recalcPointers );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void @lock( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void openCategoryFile_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject file );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void openCategoryFile_withData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject file, NObjective.RuntimeObject withData );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void openCategoryFileForEditing_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject editing );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void openCategoryFileForEditing_withData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject editing, NObjective.RuntimeObject withData );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void openRoot_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, char root );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void openRootForEditing( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char parameter_differs_from_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int parameter, NObjective.RuntimeObject differs, NObjective.RuntimeObject @from );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int parameterForKey_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject key );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void pasteSubtreePattern_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject pattern );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr path( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool permutedPath_matchesUnder_at_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject path, NObjective.RuntimeObject matchesUnder, NObjective.RuntimeObject at );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void popSubnode( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void processNode_permutations_path_replacingNode_subtreeWith_into_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject node, NObjective.RuntimeObject permutations, NObjective.RuntimeObject path, NObjective.RuntimeObject replacingNode, NObjective.RuntimeObject subtreeWith, NObjective.RuntimeObject @into
			 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr properties( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void pushSubnode_recalcPointers_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject subnode, char recalcPointers );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void pushSubnodeForEditing_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject editing );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void quiesce( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void recalcPointersForResolutionData_mask_firstRes_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data, uint mask, System.IntPtr firstRes );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void recenterResolutionData_toX_andY_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data, float toX, float andY );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr recipe( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr recipeDifference_with_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject difference, NObjective.RuntimeObject with );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char recipeDiffers_from_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject differs, NObjective.RuntimeObject @from );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void renameNode_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject node );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void renderResolutionData_toBitmap_width_height_bytesPerRow_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data, System.IntPtr toBitmap, System.IntPtr width, System.IntPtr height, System.IntPtr bytesPerRow );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void restoreParameter_from_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int parameter, NObjective.RuntimeObject @from );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void restorePreviousParameterValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject value );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void restoreResolutionData_from_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data, System.IntPtr @from );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void restoreResolutions( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr rootData( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool rootIsNil( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool rootIsOpen( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void saveParameter_to_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int parameter, NObjective.RuntimeObject to );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void saveRecipeChanges( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void saveResolutionData_into_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data, System.IntPtr @into );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void saveResolutions( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void saveRoot( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setBoolParameterValue_to_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int value, bool to );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setBoolParameterValue_to_inResolutionData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int value, bool to, System.IntPtr inResolutionData );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setBundlePath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject path );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setChanges_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, char changes );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setFloatParameterValue_forResolution_to_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int value, int forResolution, float to );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setFloatParameterValue_to_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int value, float to );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setFloatParameterValue_to_inResolutionData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int value, float to, System.IntPtr inResolutionData );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setIntParameterValue_to_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int value, int to );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setIntParameterValue_to_inResolutionData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int value, int to, System.IntPtr inResolutionData );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool setPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject path );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool setPathForEditing_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject editing );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setPhase_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float phase );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void setReadOnly( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int setStringParameterValue_to_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int value, NObjective.RuntimeObject to );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void simplifyFloatString_to_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr @string, System.IntPtr to );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr stringParameterValue_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, int value );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr subnodesDictionaryForPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject path );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void terminateResolutionData( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void termPointersForResolutionData_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr data );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void unlock( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void unquiesce( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void updateRoot( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void values_forResolutions_withCount_fromArrayOrNumber_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr values, System.IntPtr forResolutions, int withCount, NObjective.RuntimeObject fromArrayOrNumber );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern bool verifyPath_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject path );
		}
		static internal class CachedSelectors {
			public static readonly Selector addNewPropertiesToRecipe_ = "addNewPropertiesToRecipe:";
			public static readonly Selector addSubnode_ = "addSubnode:";
			public static readonly Selector arrayOrNumberFromResolutions_andValues_withCount_ = "arrayOrNumberFromResolutions:andValues:withCount:";
			public static readonly Selector atRoot = "atRoot";
			public static readonly Selector boolParameterValue_ = "boolParameterValue:";
			public static readonly Selector bundle = "bundle";
			public static readonly Selector bundlePath = "bundlePath";
			public static readonly Selector buttonResultForPPI_centerX_Y_ = "buttonResultForPPI:centerX:Y:";
			public static readonly Selector buttonResultForResolution_ = "buttonResultForResolution:";
			public static readonly Selector buttonResultForResolutionData_ = "buttonResultForResolutionData:";
			public static readonly Selector changes = "changes";
			public static readonly Selector closeRoot = "closeRoot";
			public static readonly Selector closeRootAfterSaving = "closeRootAfterSaving";
			public static readonly Selector computeInterpolatedResolution_data_ = "computeInterpolatedResolution:data:";
			public static readonly Selector computeLinearA_andB_fromX0_y0_x1_y1_ = "computeLinearA:andB:fromX0:y0:x1:y1:";
			public static readonly Selector containsAmbiguousPaths_inCategory_replacingNode_subtreeWith_ = "containsAmbiguousPaths:inCategory:replacingNode:subtreeWith:";
			public static readonly Selector copyResolution_into_ = "copyResolution:into:";
			public static readonly Selector copyResolutionData_into_withRatio_ = "copyResolutionData:into:withRatio:";
			public static readonly Selector copySubtreePattern = "copySubtreePattern";
			public static readonly Selector dataForPPI_ = "dataForPPI:";
			public static readonly Selector dataForResolutionData_ = "dataForResolutionData:";
			public static readonly Selector deepNodeCopy_ = "deepNodeCopy:";
			public static readonly Selector deepPropertiesCopy_ = "deepPropertiesCopy:";
			public static readonly Selector deepSubnodeCopy_ = "deepSubnodeCopy:";
			public static readonly Selector deleteNode = "deleteNode";
			public static readonly Selector differenceParameter_new_old_into_ = "differenceParameter:new:old:into:";
			public static readonly Selector dropFirstComponent_ = "dropFirstComponent:";
			public static readonly Selector dropLastComponent_ = "dropLastComponent:";
			public static readonly Selector enforceParameter_interpolatedValue_ = "enforceParameter:interpolatedValue:";
			public static readonly Selector evaluateFromResolutionArray_valueArray_arrayCount_atResolution_ = "evaluateFromResolutionArray:valueArray:arrayCount:atResolution:";
			public static readonly Selector firstComponent_ = "firstComponent:";
			public static readonly Selector floatParameterValue_forResolution_ = "floatParameterValue:forResolution:";
			public static readonly Selector getResolutionData_carbonMetricsTop_left_bottom_right_ = "getResolutionData:carbonMetricsTop:left:bottom:right:";
			public static readonly Selector getResolutionData_chopMetricsHoriz_vert_horizRight_vertBottom_chopType_ = "getResolutionData:chopMetricsHoriz:vert:horizRight:vertBottom:chopType:";
			public static readonly Selector getResolutionData_figureMetricsTop_left_bottom_right_ = "getResolutionData:figureMetricsTop:left:bottom:right:";
			public static readonly Selector getResolutionData_labelMetricsTop_left_bottom_right_baselineY_ = "getResolutionData:labelMetricsTop:left:bottom:right:baselineY:";
			public static readonly Selector getResolutionData_padMetricsTop_left_bottom_right_ = "getResolutionData:padMetricsTop:left:bottom:right:";
			public static readonly Selector imageWithPath_ = "imageWithPath:";
			public static readonly Selector imageWithPathInner_ = "imageWithPathInner:";
			public static readonly Selector initialize_ = "initialize:";
			public static readonly Selector initializeFiles = "initializeFiles";
			public static readonly Selector initializeParameterDataStructures = "initializeParameterDataStructures";
			public static readonly Selector initPointersForResolutionData_ = "initPointersForResolutionData:";
			public static readonly Selector initResolutionData = "initResolutionData";
			public static readonly Selector installRatio_intoResolutionData_ = "installRatio:intoResolutionData:";
			public static readonly Selector intParameterValue_ = "intParameterValue:";
			public static readonly Selector isAmbiguousAfterAddingNewSubnodeWithName_ = "isAmbiguousAfterAddingNewSubnodeWithName:";
			public static readonly Selector isAmbiguousAfterPastingSubtree_ = "isAmbiguousAfterPastingSubtree:";
			public static readonly Selector isAmbiguousAfterRenamingNodeToNewName_ = "isAmbiguousAfterRenamingNodeToNewName:";
			public static readonly Selector isLinearX0_y0_x1_y1_x2_y2_ = "isLinearX0:y0:x1:y1:x2:y2:";
			public static readonly Selector isSubtree = "isSubtree";
			public static readonly Selector lastComponent_ = "lastComponent:";
			public static readonly Selector loadRecipeOverrides_recalcPointers_ = "loadRecipeOverrides:recalcPointers:";
			public static readonly Selector @lock = "lock";
			public static readonly Selector openCategoryFile_ = "openCategoryFile:";
			public static readonly Selector openCategoryFile_withData_ = "openCategoryFile:withData:";
			public static readonly Selector openCategoryFileForEditing_ = "openCategoryFileForEditing:";
			public static readonly Selector openCategoryFileForEditing_withData_ = "openCategoryFileForEditing:withData:";
			public static readonly Selector openRoot_ = "openRoot:";
			public static readonly Selector openRootForEditing = "openRootForEditing";
			public static readonly Selector parameter_differs_from_ = "parameter:differs:from:";
			public static readonly Selector parameterForKey_ = "parameterForKey:";
			public static readonly Selector pasteSubtreePattern_ = "pasteSubtreePattern:";
			public static readonly Selector path = "path";
			public static readonly Selector permutedPath_matchesUnder_at_ = "permutedPath:matchesUnder:at:";
			public static readonly Selector popSubnode = "popSubnode";
			public static readonly Selector processNode_permutations_path_replacingNode_subtreeWith_into_ = "processNode:permutations:path:replacingNode:subtreeWith:into:";
			public static readonly Selector properties = "properties";
			public static readonly Selector pushSubnode_recalcPointers_ = "pushSubnode:recalcPointers:";
			public static readonly Selector pushSubnodeForEditing_ = "pushSubnodeForEditing:";
			public static readonly Selector quiesce = "quiesce";
			public static readonly Selector recalcPointersForResolutionData_mask_firstRes_ = "recalcPointersForResolutionData:mask:firstRes:";
			public static readonly Selector recenterResolutionData_toX_andY_ = "recenterResolutionData:toX:andY:";
			public static readonly Selector recipe = "recipe";
			public static readonly Selector recipeDifference_with_ = "recipeDifference:with:";
			public static readonly Selector recipeDiffers_from_ = "recipeDiffers:from:";
			public static readonly Selector renameNode_ = "renameNode:";
			public static readonly Selector renderResolutionData_toBitmap_width_height_bytesPerRow_ = "renderResolutionData:toBitmap:width:height:bytesPerRow:";
			public static readonly Selector restoreParameter_from_ = "restoreParameter:from:";
			public static readonly Selector restorePreviousParameterValue_ = "restorePreviousParameterValue:";
			public static readonly Selector restoreResolutionData_from_ = "restoreResolutionData:from:";
			public static readonly Selector restoreResolutions = "restoreResolutions";
			public static readonly Selector rootData = "rootData";
			public static readonly Selector rootIsNil = "rootIsNil";
			public static readonly Selector rootIsOpen = "rootIsOpen";
			public static readonly Selector saveParameter_to_ = "saveParameter:to:";
			public static readonly Selector saveRecipeChanges = "saveRecipeChanges";
			public static readonly Selector saveResolutionData_into_ = "saveResolutionData:into:";
			public static readonly Selector saveResolutions = "saveResolutions";
			public static readonly Selector saveRoot = "saveRoot";
			public static readonly Selector setBoolParameterValue_to_ = "setBoolParameterValue:to:";
			public static readonly Selector setBoolParameterValue_to_inResolutionData_ = "setBoolParameterValue:to:inResolutionData:";
			public static readonly Selector setBundlePath_ = "setBundlePath:";
			public static readonly Selector setChanges_ = "setChanges:";
			public static readonly Selector setFloatParameterValue_forResolution_to_ = "setFloatParameterValue:forResolution:to:";
			public static readonly Selector setFloatParameterValue_to_ = "setFloatParameterValue:to:";
			public static readonly Selector setFloatParameterValue_to_inResolutionData_ = "setFloatParameterValue:to:inResolutionData:";
			public static readonly Selector setIntParameterValue_to_ = "setIntParameterValue:to:";
			public static readonly Selector setIntParameterValue_to_inResolutionData_ = "setIntParameterValue:to:inResolutionData:";
			public static readonly Selector setPath_ = "setPath:";
			public static readonly Selector setPathForEditing_ = "setPathForEditing:";
			public static readonly Selector setPhase_ = "setPhase:";
			public static readonly Selector setReadOnly = "setReadOnly";
			public static readonly Selector setStringParameterValue_to_ = "setStringParameterValue:to:";
			public static readonly Selector simplifyFloatString_to_ = "simplifyFloatString:to:";
			public static readonly Selector stringParameterValue_ = "stringParameterValue:";
			public static readonly Selector subnodesDictionaryForPath_ = "subnodesDictionaryForPath:";
			public static readonly Selector terminateResolutionData = "terminateResolutionData";
			public static readonly Selector termPointersForResolutionData_ = "termPointersForResolutionData:";
			public static readonly Selector unlock = "unlock";
			public static readonly Selector unquiesce = "unquiesce";
			public static readonly Selector updateRoot = "updateRoot";
			public static readonly Selector values_forResolutions_withCount_fromArrayOrNumber_ = "values:forResolutions:withCount:fromArrayOrNumber:";
			public static readonly Selector verifyPath_ = "verifyPath:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIUIStripesGenerator : IEquatable<CIUIStripesGenerator> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIUIStripesGenerator;
		public static implicit operator CIFilter( CIUIStripesGenerator value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIUIStripesGenerator value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIUIStripesGenerator value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIUIStripesGenerator value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIUIStripesGenerator?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIUIStripesGenerator value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIUIStripesGenerator value1, CIUIStripesGenerator value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIUIStripesGenerator value1, CIUIStripesGenerator value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIUIStripesGenerator( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIUIStripesGenerator alloc() {
			return new CIUIStripesGenerator( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIUnsharpMask : IEquatable<CIUnsharpMask> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIUnsharpMask;
		public static implicit operator CIFilter( CIUnsharpMask value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIUnsharpMask value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIUnsharpMask value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIUnsharpMask value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIUnsharpMask?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIUnsharpMask value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIUnsharpMask value1, CIUnsharpMask value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIUnsharpMask value1, CIUnsharpMask value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIUnsharpMask( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIUnsharpMask alloc() {
			return new CIUnsharpMask( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIVarianceConvolution : IEquatable<CIVarianceConvolution> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIVarianceConvolution;
		public static implicit operator CIFilter( CIVarianceConvolution value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIVarianceConvolution value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIVarianceConvolution value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIVarianceConvolution value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIVarianceConvolution?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIVarianceConvolution value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIVarianceConvolution value1, CIVarianceConvolution value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIVarianceConvolution value1, CIVarianceConvolution value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIVarianceConvolution( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIVarianceConvolution alloc() {
			return new CIVarianceConvolution( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject doVariancePass_means_sums_offset_count_factor_( NObjective.RuntimeObject pass, NObjective.RuntimeObject means, NObjective.RuntimeObject sums, NObjective.RuntimeObject offset, int count, NObjective.RuntimeObject factor ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.doVariancePass_means_sums_offset_count_factor_( Handle, CachedSelectors.doVariancePass_means_sums_offset_count_factor_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( NObjective.RuntimeObject ) + sizeof( int ) + sizeof( NObjective.RuntimeObject ), pass, means, sums, offset, count, factor
			 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public int samplesPerPass() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.samplesPerPass( Handle, CachedSelectors.samplesPerPass, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr doVariancePass_means_sums_offset_count_factor_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject pass, NObjective.RuntimeObject means, NObjective.RuntimeObject sums, NObjective.RuntimeObject offset, int count, NObjective.RuntimeObject factor
			 );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern int samplesPerPass( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector doVariancePass_means_sums_offset_count_factor_ = "doVariancePass:means:sums:offset:count:factor:";
			public static readonly Selector outputImage = "outputImage";
			public static readonly Selector samplesPerPass = "samplesPerPass";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct CIVector : IEquatable<CIVector> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIVector;
		public static implicit operator NSObject( CIVector value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIVector value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIVector value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIVector?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIVector value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIVector value1, CIVector value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIVector value1, CIVector value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIVector( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIVector alloc() {
			return new CIVector( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public static CIVector vectorWithString_( string @string ) {
			RuntimeObject ___occuredException;
			var ___wrappedstring = Runtime.CreateStringProxy( @string );
			var ___result = NativeMethods.vectorWithString_( ClassHandle, CachedSelectors.vectorWithString_, out ___occuredException, sizeof( IntPtr ), ___wrappedstring );
			Runtime.ReleaseNativeObject( ___wrappedstring );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIVector( ___result );
		}
		unsafe public static CIVector vectorWithValues_count_( IntPtr values, uint count ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.vectorWithValues_count_( ClassHandle, CachedSelectors.vectorWithValues_count_, out ___occuredException, sizeof( IntPtr ) + sizeof( uint ), values, count );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIVector( ___result );
		}
		unsafe public static CIVector vectorWithX_( float x ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.vectorWithX_( ClassHandle, CachedSelectors.vectorWithX_, out ___occuredException, sizeof( float ), x );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIVector( ___result );
		}
		unsafe public static CIVector vectorWithX_Y_( float x, float Y ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.vectorWithX_Y_( ClassHandle, CachedSelectors.vectorWithX_Y_, out ___occuredException, sizeof( float ) + sizeof( float ), x, Y );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIVector( ___result );
		}
		unsafe public static CIVector vectorWithX_Y_Z_( float x, float Y, float Z ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.vectorWithX_Y_Z_( ClassHandle, CachedSelectors.vectorWithX_Y_Z_, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ), x, Y, Z );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIVector( ___result );
		}
		unsafe public static CIVector vectorWithX_Y_Z_W_( float x, float Y, float Z, float W ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.vectorWithX_Y_Z_W_( ClassHandle, CachedSelectors.vectorWithX_Y_Z_W_, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), x, Y, Z, W );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new CIVector( ___result );
		}
		unsafe public uint count() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.count( Handle, CachedSelectors.count, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ( uint ) ___result;
		}
		unsafe public void encodeWithCoder_( NSCoder coder ) {
			RuntimeObject ___occuredException;
			NativeMethods.encodeWithCoder_( Handle, CachedSelectors.encodeWithCoder_, out ___occuredException, sizeof( NSCoder ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public NObjective.RuntimeObject initWithCoder_( NObjective.RuntimeObject coder ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithCoder_( Handle, CachedSelectors.initWithCoder_, out ___occuredException, sizeof( NObjective.RuntimeObject ), coder );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithString_( string @string ) {
			RuntimeObject ___occuredException;
			var ___wrappedstring = Runtime.CreateStringProxy( @string );
			var ___result = NativeMethods.initWithString_( Handle, CachedSelectors.initWithString_, out ___occuredException, sizeof( IntPtr ), ___wrappedstring );
			Runtime.ReleaseNativeObject( ___wrappedstring );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithValues_count_( IntPtr values, uint count ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithValues_count_( Handle, CachedSelectors.initWithValues_count_, out ___occuredException, sizeof( IntPtr ) + sizeof( uint ), values, count );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithX_( float x ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithX_( Handle, CachedSelectors.initWithX_, out ___occuredException, sizeof( float ), x );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithX_Y_( float x, float Y ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithX_Y_( Handle, CachedSelectors.initWithX_Y_, out ___occuredException, sizeof( float ) + sizeof( float ), x, Y );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithX_Y_Z_( float x, float Y, float Z ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithX_Y_Z_( Handle, CachedSelectors.initWithX_Y_Z_, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ), x, Y, Z );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject initWithX_Y_Z_W_( float x, float Y, float Z, float W ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.initWithX_Y_Z_W_( Handle, CachedSelectors.initWithX_Y_Z_W_, out ___occuredException, sizeof( float ) + sizeof( float ) + sizeof( float ) + sizeof( float ), x, Y, Z, W );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public string stringRepresentation() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.stringRepresentation( Handle, CachedSelectors.stringRepresentation, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return Runtime.UnwrapNSString( ___result );
		}
		unsafe public float valueAtIndex_( uint index ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueAtIndex_( Handle, CachedSelectors.valueAtIndex_, out ___occuredException, sizeof( uint ), index );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float W() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.W( Handle, CachedSelectors.W, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float X() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.X( Handle, CachedSelectors.X, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float Y() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.Y( Handle, CachedSelectors.Y, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public float Z() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.Z( Handle, CachedSelectors.Z, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern uint count( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void encodeWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NSCoder coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithCoder_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject coder );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithString_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr @string );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithValues_count_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr values, uint count );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithX_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float x );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithX_Y_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float x, float Y );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithX_Y_Z_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float x, float Y, float Z );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr initWithX_Y_Z_W_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float x, float Y, float Z, float W );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr stringRepresentation( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float valueAtIndex_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, uint index );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr vectorWithString_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr @string );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr vectorWithValues_count_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, IntPtr values, uint count );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr vectorWithX_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float x );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr vectorWithX_Y_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float x, float Y );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr vectorWithX_Y_Z_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float x, float Y, float Z );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr vectorWithX_Y_Z_W_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, float x, float Y, float Z, float W );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float W( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float X( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float Y( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_fpret_eh2" )]
			public static extern float Z( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector count = "count";
			public static readonly Selector encodeWithCoder_ = "encodeWithCoder:";
			public static readonly Selector initWithCoder_ = "initWithCoder:";
			public static readonly Selector initWithString_ = "initWithString:";
			public static readonly Selector initWithValues_count_ = "initWithValues:count:";
			public static readonly Selector initWithX_ = "initWithX:";
			public static readonly Selector initWithX_Y_ = "initWithX:Y:";
			public static readonly Selector initWithX_Y_Z_ = "initWithX:Y:Z:";
			public static readonly Selector initWithX_Y_Z_W_ = "initWithX:Y:Z:W:";
			public static readonly Selector stringRepresentation = "stringRepresentation";
			public static readonly Selector valueAtIndex_ = "valueAtIndex:";
			public static readonly Selector vectorWithString_ = "vectorWithString:";
			public static readonly Selector vectorWithValues_count_ = "vectorWithValues:count:";
			public static readonly Selector vectorWithX_ = "vectorWithX:";
			public static readonly Selector vectorWithX_Y_ = "vectorWithX:Y:";
			public static readonly Selector vectorWithX_Y_Z_ = "vectorWithX:Y:Z:";
			public static readonly Selector vectorWithX_Y_Z_W_ = "vectorWithX:Y:Z:W:";
			public static readonly Selector W = "W";
			public static readonly Selector X = "X";
			public static readonly Selector Y = "Y";
			public static readonly Selector Z = "Z";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIVideoNoiseFilter : IEquatable<CIVideoNoiseFilter> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIVideoNoiseFilter;
		public static implicit operator CIFilter( CIVideoNoiseFilter value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIVideoNoiseFilter value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIVideoNoiseFilter value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIVideoNoiseFilter value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIVideoNoiseFilter?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIVideoNoiseFilter value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIVideoNoiseFilter value1, CIVideoNoiseFilter value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIVideoNoiseFilter value1, CIVideoNoiseFilter value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIVideoNoiseFilter( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIVideoNoiseFilter alloc() {
			return new CIVideoNoiseFilter( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIVividLightBlendMode : IEquatable<CIVividLightBlendMode> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIVividLightBlendMode;
		public static implicit operator CIFilter( CIVividLightBlendMode value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIVividLightBlendMode value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIVividLightBlendMode value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIVividLightBlendMode value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIVividLightBlendMode?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIVividLightBlendMode value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIVividLightBlendMode value1, CIVividLightBlendMode value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIVividLightBlendMode value1, CIVividLightBlendMode value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIVividLightBlendMode( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIVividLightBlendMode alloc() {
			return new CIVividLightBlendMode( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIVortexDistortion : IEquatable<CIVortexDistortion> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIVortexDistortion;
		public static implicit operator CIFilter( CIVortexDistortion value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIVortexDistortion value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIVortexDistortion value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIVortexDistortion value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIVortexDistortion?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIVortexDistortion value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIVortexDistortion value1, CIVortexDistortion value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIVortexDistortion value1, CIVortexDistortion value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIVortexDistortion( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIVortexDistortion alloc() {
			return new CIVortexDistortion( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIWhitePoint : IEquatable<CIWhitePoint> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIWhitePoint;
		public static implicit operator CIFilter( CIWhitePoint value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIWhitePoint value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIWhitePoint value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIWhitePoint value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIWhitePoint?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIWhitePoint value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIWhitePoint value1, CIWhitePoint value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIWhitePoint value1, CIWhitePoint value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIWhitePoint( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIWhitePoint alloc() {
			return new CIWhitePoint( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIWhitePointAdjust : IEquatable<CIWhitePointAdjust> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIWhitePointAdjust;
		public static implicit operator CIFilter( CIWhitePointAdjust value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIWhitePointAdjust value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIWhitePointAdjust value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIWhitePointAdjust value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIWhitePointAdjust?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIWhitePointAdjust value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIWhitePointAdjust value1, CIWhitePointAdjust value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIWhitePointAdjust value1, CIWhitePointAdjust value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIWhitePointAdjust( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIWhitePointAdjust alloc() {
			return new CIWhitePointAdjust( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIWindowedSincConvolution : IEquatable<CIWindowedSincConvolution> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIWindowedSincConvolution;
		public static implicit operator CIFilter( CIWindowedSincConvolution value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIWindowedSincConvolution value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIWindowedSincConvolution value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIWindowedSincConvolution value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIWindowedSincConvolution?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIWindowedSincConvolution value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIWindowedSincConvolution value1, CIWindowedSincConvolution value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIWindowedSincConvolution value1, CIWindowedSincConvolution value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIWindowedSincConvolution( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIWindowedSincConvolution alloc() {
			return new CIWindowedSincConvolution( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIYCbCrSubsampledReconstruction : IEquatable<CIYCbCrSubsampledReconstruction> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIYCbCrSubsampledReconstruction;
		public static implicit operator CIFilter( CIYCbCrSubsampledReconstruction value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIYCbCrSubsampledReconstruction value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIYCbCrSubsampledReconstruction value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIYCbCrSubsampledReconstruction value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIYCbCrSubsampledReconstruction?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIYCbCrSubsampledReconstruction value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIYCbCrSubsampledReconstruction value1, CIYCbCrSubsampledReconstruction value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIYCbCrSubsampledReconstruction value1, CIYCbCrSubsampledReconstruction value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIYCbCrSubsampledReconstruction( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIYCbCrSubsampledReconstruction alloc() {
			return new CIYCbCrSubsampledReconstruction( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CIFilter ) )]
	public struct CIZoomBlur : IEquatable<CIZoomBlur> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.CIZoomBlur;
		public static implicit operator CIFilter( CIZoomBlur value ) {
			return new CIFilter( value.Handle );
		}
		public static implicit operator NSObject( CIZoomBlur value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( CIZoomBlur value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( CIZoomBlur value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as CIZoomBlur?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( CIZoomBlur value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( CIZoomBlur value1, CIZoomBlur value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( CIZoomBlur value1, CIZoomBlur value2 ) {
			return value1.Handle != value2.Handle;
		}
		public CIZoomBlur( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static CIZoomBlur alloc() {
			return new CIZoomBlur( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public NObjective.RuntimeObject blur_pass_( NObjective.RuntimeObject blur, int pass ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.blur_pass_( Handle, CachedSelectors.blur_pass_, out ___occuredException, sizeof( NObjective.RuntimeObject ) + sizeof( int ), blur, pass );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public NObjective.RuntimeObject outputImage() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.outputImage( Handle, CachedSelectors.outputImage, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr blur_pass_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, NObjective.RuntimeObject blur, int pass );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr outputImage( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector blur_pass_ = "blur:pass:";
			public static readonly Selector outputImage = "outputImage";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CACodingProxy ) )]
	public struct LKCGColorCodingProxy : IEquatable<LKCGColorCodingProxy> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.LKCGColorCodingProxy;
		public static implicit operator CACodingProxy( LKCGColorCodingProxy value ) {
			return new CACodingProxy( value.Handle );
		}
		public static implicit operator NSObject( LKCGColorCodingProxy value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( LKCGColorCodingProxy value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( LKCGColorCodingProxy value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as LKCGColorCodingProxy?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( LKCGColorCodingProxy value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( LKCGColorCodingProxy value1, LKCGColorCodingProxy value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( LKCGColorCodingProxy value1, LKCGColorCodingProxy value2 ) {
			return value1.Handle != value2.Handle;
		}
		public LKCGColorCodingProxy( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static LKCGColorCodingProxy alloc() {
			return new LKCGColorCodingProxy( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CACodingProxy ) )]
	public struct LKCGImageCodingProxy : IEquatable<LKCGImageCodingProxy> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.LKCGImageCodingProxy;
		public static implicit operator CACodingProxy( LKCGImageCodingProxy value ) {
			return new CACodingProxy( value.Handle );
		}
		public static implicit operator NSObject( LKCGImageCodingProxy value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( LKCGImageCodingProxy value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( LKCGImageCodingProxy value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as LKCGImageCodingProxy?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( LKCGImageCodingProxy value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( LKCGImageCodingProxy value1, LKCGImageCodingProxy value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( LKCGImageCodingProxy value1, LKCGImageCodingProxy value2 ) {
			return value1.Handle != value2.Handle;
		}
		public LKCGImageCodingProxy( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static LKCGImageCodingProxy alloc() {
			return new LKCGImageCodingProxy( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CACodingProxy ) )]
	public struct LKNSArrayCodingProxy : IEquatable<LKNSArrayCodingProxy> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.LKNSArrayCodingProxy;
		public static implicit operator CACodingProxy( LKNSArrayCodingProxy value ) {
			return new CACodingProxy( value.Handle );
		}
		public static implicit operator NSObject( LKNSArrayCodingProxy value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( LKNSArrayCodingProxy value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( LKNSArrayCodingProxy value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as LKNSArrayCodingProxy?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( LKNSArrayCodingProxy value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( LKNSArrayCodingProxy value1, LKNSArrayCodingProxy value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( LKNSArrayCodingProxy value1, LKNSArrayCodingProxy value2 ) {
			return value1.Handle != value2.Handle;
		}
		public LKNSArrayCodingProxy( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static LKNSArrayCodingProxy alloc() {
			return new LKNSArrayCodingProxy( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CACodingProxy ) )]
	public struct LKNSDictionaryCodingProxy : IEquatable<LKNSDictionaryCodingProxy> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.LKNSDictionaryCodingProxy;
		public static implicit operator CACodingProxy( LKNSDictionaryCodingProxy value ) {
			return new CACodingProxy( value.Handle );
		}
		public static implicit operator NSObject( LKNSDictionaryCodingProxy value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( LKNSDictionaryCodingProxy value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( LKNSDictionaryCodingProxy value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as LKNSDictionaryCodingProxy?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( LKNSDictionaryCodingProxy value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( LKNSDictionaryCodingProxy value1, LKNSDictionaryCodingProxy value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( LKNSDictionaryCodingProxy value1, LKNSDictionaryCodingProxy value2 ) {
			return value1.Handle != value2.Handle;
		}
		public LKNSDictionaryCodingProxy( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static LKNSDictionaryCodingProxy alloc() {
			return new LKNSDictionaryCodingProxy( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( CACodingProxy ) )]
	public struct LKNSValueCodingProxy : IEquatable<LKNSValueCodingProxy> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.LKNSValueCodingProxy;
		public static implicit operator CACodingProxy( LKNSValueCodingProxy value ) {
			return new CACodingProxy( value.Handle );
		}
		public static implicit operator NSObject( LKNSValueCodingProxy value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( LKNSValueCodingProxy value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( LKNSValueCodingProxy value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as LKNSValueCodingProxy?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( LKNSValueCodingProxy value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( LKNSValueCodingProxy value1, LKNSValueCodingProxy value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( LKNSValueCodingProxy value1, LKNSValueCodingProxy value2 ) {
			return value1.Handle != value2.Handle;
		}
		public LKNSValueCodingProxy( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static LKNSValueCodingProxy alloc() {
			return new LKNSValueCodingProxy( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	[ProxyBaseClass( typeof( NSObject ) )]
	public struct QSILRUQueue : IEquatable<QSILRUQueue> {
		[FieldOffsetAttribute( 0 )]
		private NObjective.RuntimeObject Handle;
		public static readonly RuntimeClass ClassHandle = QuartzCoreCachedClasses.QSILRUQueue;
		public static implicit operator NSObject( QSILRUQueue value ) {
			return new NSObject( value.Handle );
		}
		public static implicit operator IntPtr( QSILRUQueue value ) {
			return value.Handle;
		}
		public static implicit operator NObjective.RuntimeObject( QSILRUQueue value ) {
			return value.Handle;
		}
		public override bool Equals( object value ) {
			var compareTo = value as QSILRUQueue?;
			return compareTo != null && Handle == compareTo.Value.Handle;
		}
		public bool Equals( QSILRUQueue value ) {
			return Handle == value.Handle;
		}
		public static bool operator ==( QSILRUQueue value1, QSILRUQueue value2 ) {
			return value1.Handle == value2.Handle;
		}
		public static bool operator !=( QSILRUQueue value1, QSILRUQueue value2 ) {
			return value1.Handle != value2.Handle;
		}
		public QSILRUQueue( IntPtr value ) {
			this.Handle = new RuntimeObject( value );
		}
		public static QSILRUQueue alloc() {
			return new QSILRUQueue( ClassHandle.InvokeIntPtr( Selectors.alloc ) );
		}
		unsafe public System.IntPtr contains_( System.IntPtr contains ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.contains_( Handle, CachedSelectors.contains_, out ___occuredException, sizeof( System.IntPtr ), contains );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public uint count() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.count( Handle, CachedSelectors.count, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ( uint ) ___result;
		}
		unsafe public void insert_( System.IntPtr insert ) {
			RuntimeObject ___occuredException;
			NativeMethods.insert_( Handle, CachedSelectors.insert_, out ___occuredException, sizeof( System.IntPtr ), insert );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public System.IntPtr popLast() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.popLast( Handle, CachedSelectors.popLast, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public System.IntPtr popLastInactiveForSeconds_( uint seconds ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.popLastInactiveForSeconds_( Handle, CachedSelectors.popLastInactiveForSeconds_, out ___occuredException, sizeof( uint ), seconds );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		unsafe public void remove_( System.IntPtr @remove ) {
			RuntimeObject ___occuredException;
			NativeMethods.remove_( Handle, CachedSelectors.remove_, out ___occuredException, sizeof( System.IntPtr ), @remove );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		unsafe public void removeAllObjects() {
			RuntimeObject ___occuredException;
			NativeMethods.removeAllObjects( Handle, CachedSelectors.removeAllObjects, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern System.IntPtr contains_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr contains );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern uint count( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void insert_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr insert );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern System.IntPtr popLast( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern System.IntPtr popLastInactiveForSeconds_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, uint seconds );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void remove_( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, System.IntPtr @remove );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern void removeAllObjects( RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector contains_ = "contains:";
			public static readonly Selector count = "count";
			public static readonly Selector insert_ = "insert:";
			public static readonly Selector popLast = "popLast";
			public static readonly Selector popLastInactiveForSeconds_ = "popLastInactiveForSeconds:";
			public static readonly Selector remove_ = "remove:";
			public static readonly Selector removeAllObjects = "removeAllObjects";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	public static class QuartzCoreExtensionsOfNSValue {
		private static int ___lazyLoad = QuartzCoreCachedClasses.___lazyLoad;
		unsafe public static NSValue valueWithCATransform3D_( CATransform3D d ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.valueWithCATransform3D_( NSValue.ClassHandle, CachedSelectors.valueWithCATransform3D_, out ___occuredException, sizeof( CATransform3D ), d );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NSValue( ___result );
		}
		unsafe public static CATransform3D CATransform3DValue( this NSValue ___this ) {
			CATransform3D ___result;
			RuntimeObject ___occuredException;
			NativeMethods.CATransform3DValue( out ___result, sizeof( CATransform3D ), ___this, CachedSelectors.CATransform3DValue, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_stret_eh2" )]
			public static extern void CATransform3DValue( out CATransform3D ___structAddress, int ___structSize, RuntimeObject ___object, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr valueWithCATransform3D_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, CATransform3D d );
		}
		static internal class CachedSelectors {
			public static readonly Selector CATransform3DValue = "CATransform3DValue";
			public static readonly Selector valueWithCATransform3D_ = "valueWithCATransform3D:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	public static class QuartzCoreExtensionsOfNSTimer {
		private static int ___lazyLoad = QuartzCoreCachedClasses.___lazyLoad;
		unsafe public static NObjective.RuntimeObject CAJS_scheduledTimerWithTimeInterval_function_repeats_( double interval, NObjective.RuntimeObject function, char repeats ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.CAJS_scheduledTimerWithTimeInterval_function_repeats_( NSTimer.ClassHandle, CachedSelectors.CAJS_scheduledTimerWithTimeInterval_function_repeats_, out ___occuredException, sizeof( double ) + sizeof( NObjective.RuntimeObject ) + sizeof( char ), interval, function, repeats );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		unsafe public static NObjective.RuntimeObject CAJS_timerWithTimeInterval_function_repeats_( double interval, NObjective.RuntimeObject function, char repeats ) {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.CAJS_timerWithTimeInterval_function_repeats_( NSTimer.ClassHandle, CachedSelectors.CAJS_timerWithTimeInterval_function_repeats_, out ___occuredException, sizeof( double ) + sizeof( NObjective.RuntimeObject ) + sizeof( char ), interval, function, repeats );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return new NObjective.RuntimeObject( ___result );
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr CAJS_scheduledTimerWithTimeInterval_function_repeats_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, double interval, NObjective.RuntimeObject function, char repeats );
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern IntPtr CAJS_timerWithTimeInterval_function_repeats_( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize, double interval, NObjective.RuntimeObject function, char repeats );
		}
		static internal class CachedSelectors {
			public static readonly Selector CAJS_scheduledTimerWithTimeInterval_function_repeats_ = "CAJS_scheduledTimerWithTimeInterval:function:repeats:";
			public static readonly Selector CAJS_timerWithTimeInterval_function_repeats_ = "CAJS_timerWithTimeInterval:function:repeats:";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	public static class QuartzCoreExtensionsOfNSObject {
		private static int ___lazyLoad = QuartzCoreCachedClasses.___lazyLoad;
		unsafe public static char CAML_supportedClass() {
			RuntimeObject ___occuredException;
			var ___result = NativeMethods.CAML_supportedClass( NSObject.ClassHandle, CachedSelectors.CAML_supportedClass, out ___occuredException, 0 );
			if( ___occuredException != RuntimeObject.Null ) throw RuntimeException.Create( ___occuredException ); 
			return ___result;
		}
		private static class NativeMethods {
			[DllImport( Runtime.InteropLibrary, EntryPoint = "objc_msgSend_eh2" )]
			public static extern char CAML_supportedClass( RuntimeClass ___class, Selector ___selector, out RuntimeObject ___occuredException, int ___stackSize );
		}
		static internal class CachedSelectors {
			public static readonly Selector CAML_supportedClass = "CAML_supportedClass";
		}
	}
	[StructLayoutAttribute( LayoutKind.Explicit )]
	public static class QuartzCoreExtensionsOfNSArray {
		private static int ___lazyLoad = QuartzCoreCachedClasses.___lazyLoad;
	}
	static internal class QuartzCoreCachedClasses {
		static internal int ___lazyLoad = Platform.NativeMethods.dlopen( "/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore" );
		public static readonly RuntimeClass CAAnimation = "CAAnimation";
		public static readonly RuntimeClass CAAnimationGroup = "CAAnimationGroup";
		public static readonly RuntimeClass CABasicAnimation = "CABasicAnimation";
		public static readonly RuntimeClass CABoxLayoutManager = "CABoxLayoutManager";
		public static readonly RuntimeClass CACodingProxy = "CACodingProxy";
		public static readonly RuntimeClass CAConstraint = "CAConstraint";
		public static readonly RuntimeClass CAConstraintLayoutManager = "CAConstraintLayoutManager";
		public static readonly RuntimeClass CAContext = "CAContext";
		public static readonly RuntimeClass CAContextImpl = "CAContextImpl";
		public static readonly RuntimeClass CAEmitterCell = "CAEmitterCell";
		public static readonly RuntimeClass CAEmitterLayer = "CAEmitterLayer";
		public static readonly RuntimeClass CAFilter = "CAFilter";
		public static readonly RuntimeClass CAJS_CATransform3D = "CAJS_CATransform3D";
		public static readonly RuntimeClass CAJS_CGColor = "CAJS_CGColor";
		public static readonly RuntimeClass CAJS_CGColorSpace = "CAJS_CGColorSpace";
		public static readonly RuntimeClass CAJS_CGImage = "CAJS_CGImage";
		public static readonly RuntimeClass CAJS_CGPoint = "CAJS_CGPoint";
		public static readonly RuntimeClass CAJS_CGRect = "CAJS_CGRect";
		public static readonly RuntimeClass CAJS_CGSize = "CAJS_CGSize";
		public static readonly RuntimeClass CAJSArray = "CAJSArray";
		public static readonly RuntimeClass CAJSCGContext = "CAJSCGContext";
		public static readonly RuntimeClass CAJSDictionary = "CAJSDictionary";
		public static readonly RuntimeClass CAJSDictionaryKeyEnumerator = "CAJSDictionaryKeyEnumerator";
		public static readonly RuntimeClass CAJSFunction = "CAJSFunction";
		public static readonly RuntimeClass CAJSString = "CAJSString";
		public static readonly RuntimeClass CAKeyframeAnimation = "CAKeyframeAnimation";
		public static readonly RuntimeClass CALayer = "CALayer";
		public static readonly RuntimeClass CAMediaTimingFunction = "CAMediaTimingFunction";
		public static readonly RuntimeClass CAMLParser = "CAMLParser";
		public static readonly RuntimeClass CAOpenGLLayer = "CAOpenGLLayer";
		public static readonly RuntimeClass CAPDFLayer = "CAPDFLayer";
		public static readonly RuntimeClass CAPropertyAnimation = "CAPropertyAnimation";
		public static readonly RuntimeClass CARenderer = "CARenderer";
		public static readonly RuntimeClass CAScriptContext = "CAScriptContext";
		public static readonly RuntimeClass CAScrollLayer = "CAScrollLayer";
		public static readonly RuntimeClass CAScrollLayoutManager = "CAScrollLayoutManager";
		public static readonly RuntimeClass CASlotProxy = "CASlotProxy";
		public static readonly RuntimeClass CASublayerEnumerator = "CASublayerEnumerator";
		public static readonly RuntimeClass CATableLayoutManager = "CATableLayoutManager";
		public static readonly RuntimeClass CATextLayer = "CATextLayer";
		public static readonly RuntimeClass CATiledLayer = "CATiledLayer";
		public static readonly RuntimeClass CATransaction = "CATransaction";
		public static readonly RuntimeClass CATransformLayer = "CATransformLayer";
		public static readonly RuntimeClass CATransition = "CATransition";
		public static readonly RuntimeClass CAWrappedLayoutManager = "CAWrappedLayoutManager";
		public static readonly RuntimeClass CIAddBlendMode = "CIAddBlendMode";
		public static readonly RuntimeClass CIAdditionCompositing = "CIAdditionCompositing";
		public static readonly RuntimeClass CIAdjustBrightnessContrast = "CIAdjustBrightnessContrast";
		public static readonly RuntimeClass CIAdvancedHeightFieldFromMask = "CIAdvancedHeightFieldFromMask";
		public static readonly RuntimeClass CIAdvancedMaskToAlpha = "CIAdvancedMaskToAlpha";
		public static readonly RuntimeClass CIAdvancedShadedMaterial = "CIAdvancedShadedMaterial";
		public static readonly RuntimeClass CIAffineClamp = "CIAffineClamp";
		public static readonly RuntimeClass CIAffineTile = "CIAffineTile";
		public static readonly RuntimeClass CIAffineTransform = "CIAffineTransform";
		public static readonly RuntimeClass CIAlphaAddBlendMode = "CIAlphaAddBlendMode";
		public static readonly RuntimeClass CIAreaAverage = "CIAreaAverage";
		public static readonly RuntimeClass CIAreaCummulativeHistogramAlpha = "CIAreaCummulativeHistogramAlpha";
		public static readonly RuntimeClass CIAreaHistogram = "CIAreaHistogram";
		public static readonly RuntimeClass CIAreaMaximum = "CIAreaMaximum";
		public static readonly RuntimeClass CIAreaMaximumAlpha = "CIAreaMaximumAlpha";
		public static readonly RuntimeClass CIAreaMinimum = "CIAreaMinimum";
		public static readonly RuntimeClass CIAreaMinimumAlpha = "CIAreaMinimumAlpha";
		public static readonly RuntimeClass CIAutoBlackPointWhitePoint = "CIAutoBlackPointWhitePoint";
		public static readonly RuntimeClass CIAxialBlur = "CIAxialBlur";
		public static readonly RuntimeClass CIAxialMotionBlur = "CIAxialMotionBlur";
		public static readonly RuntimeClass CIBackground = "CIBackground";
		public static readonly RuntimeClass CIBarsSwipeTransition = "CIBarsSwipeTransition";
		public static readonly RuntimeClass CIBayerReconstruction = "CIBayerReconstruction";
		public static readonly RuntimeClass CIBayerReconstructionV0 = "CIBayerReconstructionV0";
		public static readonly RuntimeClass CIBehindBlendMode = "CIBehindBlendMode";
		public static readonly RuntimeClass CIBilateralConvolution = "CIBilateralConvolution";
		public static readonly RuntimeClass CIBilateralFilter = "CIBilateralFilter";
		public static readonly RuntimeClass CIBitmapContext = "CIBitmapContext";
		public static readonly RuntimeClass CIBitmapContextImpl = "CIBitmapContextImpl";
		public static readonly RuntimeClass CIBlendWithMask = "CIBlendWithMask";
		public static readonly RuntimeClass CIBloom = "CIBloom";
		public static readonly RuntimeClass CIBoxBlur = "CIBoxBlur";
		public static readonly RuntimeClass CIBumpDistortion = "CIBumpDistortion";
		public static readonly RuntimeClass CIBumpDistortionLinear = "CIBumpDistortionLinear";
		public static readonly RuntimeClass CIBurnBlendMode = "CIBurnBlendMode";
		public static readonly RuntimeClass CICGContext = "CICGContext";
		public static readonly RuntimeClass CICGContextImpl = "CICGContextImpl";
		public static readonly RuntimeClass CICGSFilter = "CICGSFilter";
		public static readonly RuntimeClass CICheapBlur = "CICheapBlur";
		public static readonly RuntimeClass CICheapMorphology = "CICheapMorphology";
		public static readonly RuntimeClass CICheatBlur = "CICheatBlur";
		public static readonly RuntimeClass CICheckerboardGenerator = "CICheckerboardGenerator";
		public static readonly RuntimeClass CIChopLines = "CIChopLines";
		public static readonly RuntimeClass CICircleGenerator = "CICircleGenerator";
		public static readonly RuntimeClass CICircleSplashDistortion = "CICircleSplashDistortion";
		public static readonly RuntimeClass CICircularScreen = "CICircularScreen";
		public static readonly RuntimeClass CICircularWrap = "CICircularWrap";
		public static readonly RuntimeClass CICMYKHalftone = "CICMYKHalftone";
		public static readonly RuntimeClass CIColor = "CIColor";
		public static readonly RuntimeClass CIColorBlendMode = "CIColorBlendMode";
		public static readonly RuntimeClass CIColorBurnBlendMode = "CIColorBurnBlendMode";
		public static readonly RuntimeClass CIColorControls = "CIColorControls";
		public static readonly RuntimeClass CIColorCube = "CIColorCube";
		public static readonly RuntimeClass CIColorDodgeBlendMode = "CIColorDodgeBlendMode";
		public static readonly RuntimeClass CIColorInvert = "CIColorInvert";
		public static readonly RuntimeClass CIColorMap = "CIColorMap";
		public static readonly RuntimeClass CIColorMatrix = "CIColorMatrix";
		public static readonly RuntimeClass CIColorMonochrome = "CIColorMonochrome";
		public static readonly RuntimeClass CIColorPosterize = "CIColorPosterize";
		public static readonly RuntimeClass CIColorWheelGenerator = "CIColorWheelGenerator";
		public static readonly RuntimeClass CIColumnAverage = "CIColumnAverage";
		public static readonly RuntimeClass CIComicEffect = "CIComicEffect";
		public static readonly RuntimeClass CIConcreteImage = "CIConcreteImage";
		public static readonly RuntimeClass CIConcreteKernel = "CIConcreteKernel";
		public static readonly RuntimeClass CIConcretePromise = "CIConcretePromise";
		public static readonly RuntimeClass CIConcreteSampler = "CIConcreteSampler";
		public static readonly RuntimeClass CIConstantColorGenerator = "CIConstantColorGenerator";
		public static readonly RuntimeClass CIContext = "CIContext";
		public static readonly RuntimeClass CIContextDebugImpl = "CIContextDebugImpl";
		public static readonly RuntimeClass CIContextImpl = "CIContextImpl";
		public static readonly RuntimeClass CIConvolution = "CIConvolution";
		public static readonly RuntimeClass CICopyMachineTransition = "CICopyMachineTransition";
		public static readonly RuntimeClass CICorrectHighlights = "CICorrectHighlights";
		public static readonly RuntimeClass CICrop = "CICrop";
		public static readonly RuntimeClass CICropAlphaFilter = "CICropAlphaFilter";
		public static readonly RuntimeClass CICrystallize = "CICrystallize";
		public static readonly RuntimeClass CICubicGradientGenerator = "CICubicGradientGenerator";
		public static readonly RuntimeClass CICubicGradientGenerator2 = "CICubicGradientGenerator2";
		public static readonly RuntimeClass CICubicGradientGenerator3 = "CICubicGradientGenerator3";
		public static readonly RuntimeClass CICubicGradientGenerator4 = "CICubicGradientGenerator4";
		public static readonly RuntimeClass CICubicGradientGenerator5 = "CICubicGradientGenerator5";
		public static readonly RuntimeClass CICVImageProviderDelegate = "CICVImageProviderDelegate";
		public static readonly RuntimeClass CIDarkenBlendMode = "CIDarkenBlendMode";
		public static readonly RuntimeClass CIDarkerBlendMode = "CIDarkerBlendMode";
		public static readonly RuntimeClass CIDeBayer = "CIDeBayer";
		public static readonly RuntimeClass CIDesaturateGamutMapping = "CIDesaturateGamutMapping";
		public static readonly RuntimeClass CIDifferenceBlendMode = "CIDifferenceBlendMode";
		public static readonly RuntimeClass CIDiffusion = "CIDiffusion";
		public static readonly RuntimeClass CIDiscBlur = "CIDiscBlur";
		public static readonly RuntimeClass CIDisintegrateWithMaskTransition = "CIDisintegrateWithMaskTransition";
		public static readonly RuntimeClass CIDisplacementDistortion = "CIDisplacementDistortion";
		public static readonly RuntimeClass CIDisplaceWithNoise = "CIDisplaceWithNoise";
		public static readonly RuntimeClass CIDissolveTransition = "CIDissolveTransition";
		public static readonly RuntimeClass CIDistanceFieldFromMask = "CIDistanceFieldFromMask";
		public static readonly RuntimeClass CIDotScreen = "CIDotScreen";
		public static readonly RuntimeClass CIEdge = "CIEdge";
		public static readonly RuntimeClass CIEdges = "CIEdges";
		public static readonly RuntimeClass CIEdgeWork = "CIEdgeWork";
		public static readonly RuntimeClass CIEightfoldReflectedTile = "CIEightfoldReflectedTile";
		public static readonly RuntimeClass CIEmboss = "CIEmboss";
		public static readonly RuntimeClass CIExclusionBlendMode = "CIExclusionBlendMode";
		public static readonly RuntimeClass CIExposureAdjust = "CIExposureAdjust";
		public static readonly RuntimeClass CIFalseColor = "CIFalseColor";
		public static readonly RuntimeClass CIFilter = "CIFilter";
		public static readonly RuntimeClass CIFilterClassDescription = "CIFilterClassDescription";
		public static readonly RuntimeClass CIFilterGenerator = "CIFilterGenerator";
		public static readonly RuntimeClass CIFilterGeneratorCIFilter = "CIFilterGeneratorCIFilter";
		public static readonly RuntimeClass CIFilterGeneratorConnection = "CIFilterGeneratorConnection";
		public static readonly RuntimeClass CIFilterGraph = "CIFilterGraph";
		public static readonly RuntimeClass CIFilterPlugIn = "CIFilterPlugIn";
		public static readonly RuntimeClass CIFilterShape = "CIFilterShape";
		public static readonly RuntimeClass CIFlashTransition = "CIFlashTransition";
		public static readonly RuntimeClass CIFlat3X3ChromaBlur = "CIFlat3X3ChromaBlur";
		public static readonly RuntimeClass CIFlat5X5ChromaBlur = "CIFlat5X5ChromaBlur";
		public static readonly RuntimeClass CIFourfoldReflectedTile = "CIFourfoldReflectedTile";
		public static readonly RuntimeClass CIFourfoldRotatedTile = "CIFourfoldRotatedTile";
		public static readonly RuntimeClass CIFourfoldTranslatedTile = "CIFourfoldTranslatedTile";
		public static readonly RuntimeClass CIFullButton = "CIFullButton";
		public static readonly RuntimeClass CIGammaAdjust = "CIGammaAdjust";
		public static readonly RuntimeClass CIGamutAlarm = "CIGamutAlarm";
		public static readonly RuntimeClass CIGamutClamp = "CIGamutClamp";
		public static readonly RuntimeClass CIGamutRollOff = "CIGamutRollOff";
		public static readonly RuntimeClass CIGaussianBlur = "CIGaussianBlur";
		public static readonly RuntimeClass CIGaussianChromaBlurMinimum = "CIGaussianChromaBlurMinimum";
		public static readonly RuntimeClass CIGaussianGradient = "CIGaussianGradient";
		public static readonly RuntimeClass CIGaussianPyramid = "CIGaussianPyramid";
		public static readonly RuntimeClass CIGelBlendMode = "CIGelBlendMode";
		public static readonly RuntimeClass CIGlassDistortion = "CIGlassDistortion";
		public static readonly RuntimeClass CIGlassLozenge = "CIGlassLozenge";
		public static readonly RuntimeClass CIGlideReflectedTile = "CIGlideReflectedTile";
		public static readonly RuntimeClass CIGloom = "CIGloom";
		public static readonly RuntimeClass CIGraph = "CIGraph";
		public static readonly RuntimeClass CIHardLightBlendMode = "CIHardLightBlendMode";
		public static readonly RuntimeClass CIHardMixBlendMode = "CIHardMixBlendMode";
		public static readonly RuntimeClass CIHatchedScreen = "CIHatchedScreen";
		public static readonly RuntimeClass CIHDRToneMapping = "CIHDRToneMapping";
		public static readonly RuntimeClass CIHeightFieldFromConstraints = "CIHeightFieldFromConstraints";
		public static readonly RuntimeClass CIHeightFieldFromMask = "CIHeightFieldFromMask";
		public static readonly RuntimeClass CIHexagonalPixellate = "CIHexagonalPixellate";
		public static readonly RuntimeClass CIHighlightShadow = "CIHighlightShadow";
		public static readonly RuntimeClass CIHistogram = "CIHistogram";
		public static readonly RuntimeClass CIHoleDistortion = "CIHoleDistortion";
		public static readonly RuntimeClass CIHomomorphicSharpen = "CIHomomorphicSharpen";
		public static readonly RuntimeClass CIHueAdjust = "CIHueAdjust";
		public static readonly RuntimeClass CIHueBlendMode = "CIHueBlendMode";
		public static readonly RuntimeClass CIImage = "CIImage";
		public static readonly RuntimeClass CIImageAccumulator = "CIImageAccumulator";
		public static readonly RuntimeClass CIKaleidoscope = "CIKaleidoscope";
		public static readonly RuntimeClass CIKernel = "CIKernel";
		public static readonly RuntimeClass CIKuwaharaNagaoFilter = "CIKuwaharaNagaoFilter";
		public static readonly RuntimeClass CILanczosBayerReconstruction = "CILanczosBayerReconstruction";
		public static readonly RuntimeClass CILanczosResize = "CILanczosResize";
		public static readonly RuntimeClass CILanczosScaleTransform = "CILanczosScaleTransform";
		public static readonly RuntimeClass CILenticularHaloGenerator = "CILenticularHaloGenerator";
		public static readonly RuntimeClass CILightenBlendMode = "CILightenBlendMode";
		public static readonly RuntimeClass CILinearBumpField = "CILinearBumpField";
		public static readonly RuntimeClass CILinearBurnBlendMode = "CILinearBurnBlendMode";
		public static readonly RuntimeClass CILinearDodgeBlendMode = "CILinearDodgeBlendMode";
		public static readonly RuntimeClass CILinearGradient = "CILinearGradient";
		public static readonly RuntimeClass CILinearGradientWithCubicEndsGenerator = "CILinearGradientWithCubicEndsGenerator";
		public static readonly RuntimeClass CILinearLightBlendMode = "CILinearLightBlendMode";
		public static readonly RuntimeClass CILineOverlay = "CILineOverlay";
		public static readonly RuntimeClass CILineScreen = "CILineScreen";
		public static readonly RuntimeClass CILocalContrast = "CILocalContrast";
		public static readonly RuntimeClass CILuminanceGamutMapping = "CILuminanceGamutMapping";
		public static readonly RuntimeClass CILuminescentPremultiplyBlendMode = "CILuminescentPremultiplyBlendMode";
		public static readonly RuntimeClass CILuminosityBlendMode = "CILuminosityBlendMode";
		public static readonly RuntimeClass CIMakeShadowMask = "CIMakeShadowMask";
		public static readonly RuntimeClass CIMaskToAlpha = "CIMaskToAlpha";
		public static readonly RuntimeClass CIMaterialMap = "CIMaterialMap";
		public static readonly RuntimeClass CIMaterialMapImageLightGenerator = "CIMaterialMapImageLightGenerator";
		public static readonly RuntimeClass CIMaterialMapLightGenerator = "CIMaterialMapLightGenerator";
		public static readonly RuntimeClass CIMaterialMapReflectionMapLightGenerator = "CIMaterialMapReflectionMapLightGenerator";
		public static readonly RuntimeClass CIMaximumComponent = "CIMaximumComponent";
		public static readonly RuntimeClass CIMaximumCompositing = "CIMaximumCompositing";
		public static readonly RuntimeClass CIMedianFilter = "CIMedianFilter";
		public static readonly RuntimeClass CIMenuAppleGenerator = "CIMenuAppleGenerator";
		public static readonly RuntimeClass CIMenuBarBlendMode = "CIMenuBarBlendMode";
		public static readonly RuntimeClass CIMenuBarGenerator = "CIMenuBarGenerator";
		public static readonly RuntimeClass CIMenuGenerator = "CIMenuGenerator";
		public static readonly RuntimeClass CIMinimumComponent = "CIMinimumComponent";
		public static readonly RuntimeClass CIMinimumCompositing = "CIMinimumCompositing";
		public static readonly RuntimeClass CIMixOver = "CIMixOver";
		public static readonly RuntimeClass CIModTransition = "CIModTransition";
		public static readonly RuntimeClass CIMorphology = "CIMorphology";
		public static readonly RuntimeClass CIMorphologyGradient = "CIMorphologyGradient";
		public static readonly RuntimeClass CIMorphologyLaplacian = "CIMorphologyLaplacian";
		public static readonly RuntimeClass CIMorphologyMax = "CIMorphologyMax";
		public static readonly RuntimeClass CIMorphologyMin = "CIMorphologyMin";
		public static readonly RuntimeClass CIMotionBlur = "CIMotionBlur";
		public static readonly RuntimeClass CIMultiplyBlendMode = "CIMultiplyBlendMode";
		public static readonly RuntimeClass CIMultiplyCompositing = "CIMultiplyCompositing";
		public static readonly RuntimeClass CIMutableFilterShape = "CIMutableFilterShape";
		public static readonly RuntimeClass CINoiseReduction = "CINoiseReduction";
		public static readonly RuntimeClass CIOpacity = "CIOpacity";
		public static readonly RuntimeClass CIOpenGLContext = "CIOpenGLContext";
		public static readonly RuntimeClass CIOpenGLContextImpl = "CIOpenGLContextImpl";
		public static readonly RuntimeClass CIOpTile = "CIOpTile";
		public static readonly RuntimeClass CIOverlayBlendMode = "CIOverlayBlendMode";
		public static readonly RuntimeClass CIPageCurlTransition = "CIPageCurlTransition";
		public static readonly RuntimeClass CIParallelogramTile = "CIParallelogramTile";
		public static readonly RuntimeClass CIPartialAreaHistogram = "CIPartialAreaHistogram";
		public static readonly RuntimeClass CIPatternFill = "CIPatternFill";
		public static readonly RuntimeClass CIPerspectiveTile = "CIPerspectiveTile";
		public static readonly RuntimeClass CIPerspectiveTransform = "CIPerspectiveTransform";
		public static readonly RuntimeClass CIPinchDistortion = "CIPinchDistortion";
		public static readonly RuntimeClass CIPinLightBlendMode = "CIPinLightBlendMode";
		public static readonly RuntimeClass CIPixellate = "CIPixellate";
		public static readonly RuntimeClass CIPixelZoom = "CIPixelZoom";
		public static readonly RuntimeClass CIPlugIn = "CIPlugIn";
		public static readonly RuntimeClass CIPlugInStandardFilter = "CIPlugInStandardFilter";
		public static readonly RuntimeClass CIPointillize = "CIPointillize";
		public static readonly RuntimeClass CIPromise = "CIPromise";
		public static readonly RuntimeClass CIPromiseInvocation = "CIPromiseInvocation";
		public static readonly RuntimeClass CIProSharpen = "CIProSharpen";
		public static readonly RuntimeClass CIProSharpenEdges = "CIProSharpenEdges";
		public static readonly RuntimeClass CIProSharpeningEdgesDisplay = "CIProSharpeningEdgesDisplay";
		public static readonly RuntimeClass CIPseudoMedian = "CIPseudoMedian";
		public static readonly RuntimeClass CIRadialGradient = "CIRadialGradient";
		public static readonly RuntimeClass CIRandomGenerator = "CIRandomGenerator";
		public static readonly RuntimeClass CIRAWFilterImpl = "CIRAWFilterImpl";
		public static readonly RuntimeClass CIRAWGamutMapping = "CIRAWGamutMapping";
		public static readonly RuntimeClass CIRAWSharpen = "CIRAWSharpen";
		public static readonly RuntimeClass CIRAWTemperatureAdjust = "CIRAWTemperatureAdjust";
		public static readonly RuntimeClass CIRecordingContext = "CIRecordingContext";
		public static readonly RuntimeClass CIRecordingContextImpl = "CIRecordingContextImpl";
		public static readonly RuntimeClass CIRectangleGenerator = "CIRectangleGenerator";
		public static readonly RuntimeClass CIRectsGenerator = "CIRectsGenerator";
		public static readonly RuntimeClass CIRefractedMaterial = "CIRefractedMaterial";
		public static readonly RuntimeClass CIRenderProviderDelegate = "CIRenderProviderDelegate";
		public static readonly RuntimeClass CIRippleTransition = "CIRippleTransition";
		public static readonly RuntimeClass CIRotatingCubeTransition = "CIRotatingCubeTransition";
		public static readonly RuntimeClass CIRowAverage = "CIRowAverage";
		public static readonly RuntimeClass CISampleAreaOperation = "CISampleAreaOperation";
		public static readonly RuntimeClass CISampler = "CISampler";
		public static readonly RuntimeClass CISaturationBlendMode = "CISaturationBlendMode";
		public static readonly RuntimeClass CIScreenBlendMode = "CIScreenBlendMode";
		public static readonly RuntimeClass CISepiaTone = "CISepiaTone";
		public static readonly RuntimeClass CIShadedMaterial = "CIShadedMaterial";
		public static readonly RuntimeClass CIShapedWaterRipple = "CIShapedWaterRipple";
		public static readonly RuntimeClass CISharpenLuminance = "CISharpenLuminance";
		public static readonly RuntimeClass CISilhouetteAlphaBlendMode = "CISilhouetteAlphaBlendMode";
		public static readonly RuntimeClass CISilhouetteLumaBlendMode = "CISilhouetteLumaBlendMode";
		public static readonly RuntimeClass CISixfoldReflectedTile = "CISixfoldReflectedTile";
		public static readonly RuntimeClass CISixfoldRotatedTile = "CISixfoldRotatedTile";
		public static readonly RuntimeClass CISmallChromaMorphologyMinimum = "CISmallChromaMorphologyMinimum";
		public static readonly RuntimeClass CISmallCircularChromaBlur = "CISmallCircularChromaBlur";
		public static readonly RuntimeClass CISmallHighpassEdges = "CISmallHighpassEdges";
		public static readonly RuntimeClass CISmallSharpenEdgesAndChromaBlur = "CISmallSharpenEdgesAndChromaBlur";
		public static readonly RuntimeClass CISobelEdges = "CISobelEdges";
		public static readonly RuntimeClass CISoftLightBlendMode = "CISoftLightBlendMode";
		public static readonly RuntimeClass CISourceAtopCompositing = "CISourceAtopCompositing";
		public static readonly RuntimeClass CISourceInCompositing = "CISourceInCompositing";
		public static readonly RuntimeClass CISourceOutCompositing = "CISourceOutCompositing";
		public static readonly RuntimeClass CISourceOverCompositing = "CISourceOverCompositing";
		public static readonly RuntimeClass CISphereGradient = "CISphereGradient";
		public static readonly RuntimeClass CISpotColor = "CISpotColor";
		public static readonly RuntimeClass CISpotLight = "CISpotLight";
		public static readonly RuntimeClass CIStarShineGenerator = "CIStarShineGenerator";
		public static readonly RuntimeClass CIStencilAlphaBlendMode = "CIStencilAlphaBlendMode";
		public static readonly RuntimeClass CIStencilLumaBlendMode = "CIStencilLumaBlendMode";
		public static readonly RuntimeClass CIStripesGenerator = "CIStripesGenerator";
		public static readonly RuntimeClass CIStripGenerator = "CIStripGenerator";
		public static readonly RuntimeClass CISubtractBlendMode = "CISubtractBlendMode";
		public static readonly RuntimeClass CISumOf8Conics = "CISumOf8Conics";
		public static readonly RuntimeClass CISunbeamsGenerator = "CISunbeamsGenerator";
		public static readonly RuntimeClass CISwipeTransition = "CISwipeTransition";
		public static readonly RuntimeClass CISymmetricNearestNeighbor = "CISymmetricNearestNeighbor";
		public static readonly RuntimeClass CITagWithColorSpace = "CITagWithColorSpace";
		public static readonly RuntimeClass CITigerBlur = "CITigerBlur";
		public static readonly RuntimeClass CITorusLensDistortion = "CITorusLensDistortion";
		public static readonly RuntimeClass CITransferImage = "CITransferImage";
		public static readonly RuntimeClass CITriangleTile = "CITriangleTile";
		public static readonly RuntimeClass CITwelvefoldReflectedTile = "CITwelvefoldReflectedTile";
		public static readonly RuntimeClass CITwirlDistortion = "CITwirlDistortion";
		public static readonly RuntimeClass CIUIBundle1 = "CIUIBundle1";
		public static readonly RuntimeClass CIUIBundle2 = "CIUIBundle2";
		public static readonly RuntimeClass CIUIBundleBase = "CIUIBundleBase";
		public static readonly RuntimeClass CIUIStripesGenerator = "CIUIStripesGenerator";
		public static readonly RuntimeClass CIUnsharpMask = "CIUnsharpMask";
		public static readonly RuntimeClass CIVarianceConvolution = "CIVarianceConvolution";
		public static readonly RuntimeClass CIVector = "CIVector";
		public static readonly RuntimeClass CIVideoNoiseFilter = "CIVideoNoiseFilter";
		public static readonly RuntimeClass CIVividLightBlendMode = "CIVividLightBlendMode";
		public static readonly RuntimeClass CIVortexDistortion = "CIVortexDistortion";
		public static readonly RuntimeClass CIWhitePoint = "CIWhitePoint";
		public static readonly RuntimeClass CIWhitePointAdjust = "CIWhitePointAdjust";
		public static readonly RuntimeClass CIWindowedSincConvolution = "CIWindowedSincConvolution";
		public static readonly RuntimeClass CIYCbCrSubsampledReconstruction = "CIYCbCrSubsampledReconstruction";
		public static readonly RuntimeClass CIZoomBlur = "CIZoomBlur";
		public static readonly RuntimeClass LKCGColorCodingProxy = "LKCGColorCodingProxy";
		public static readonly RuntimeClass LKCGImageCodingProxy = "LKCGImageCodingProxy";
		public static readonly RuntimeClass LKNSArrayCodingProxy = "LKNSArrayCodingProxy";
		public static readonly RuntimeClass LKNSDictionaryCodingProxy = "LKNSDictionaryCodingProxy";
		public static readonly RuntimeClass LKNSValueCodingProxy = "LKNSValueCodingProxy";
		public static readonly RuntimeClass QSILRUQueue = "QSILRUQueue";
		public static readonly RuntimeClass NSValue = "NSValue";
		public static readonly RuntimeClass NSTimer = "NSTimer";
		public static readonly RuntimeClass NSObject = "NSObject";
		public static readonly RuntimeClass NSArray = "NSArray";
	}
}
